#author("2018-12-08T16:58:46+09:00","default:nowsky","nowsky") *Apache [#d1379e89] [[Apache:+http://httpd.apache.org/]] Linux用WWWサーバの代名詞。 apache2.4からは設定方法が色々と変更されているので注意。 ~ *インストール [#l4783199] &size(16){&font(b){1. 前準備};}; ソースから入れる前にpkgconifgを統一しておく。 他の場合でもやった方がよさそうだが、書くのが面倒くさいので省略。 (Linux入れたら、とりあえずLAMP構築するだろうからここだけで大丈夫だべ) # cd /usr/local/lib64 # ln -s /usr/lib64/pkgconfig . # cd /usr/local/lib # mkdir /usr/lib/pkgconfig # ln -s /usr/lib/pkgconfig . 後は、https通信用に[[OpenSSL>Linux/Source/OpenSSL]]も入れておく。 ~ &size(16){&font(b){2. APRのビルド・インストール};}; apacheのソースと一緒にビルドする方法もあるらしいが、 %%自分の環境では上手くいかなかった%%ので別々にビルドする -> [[一括ビルドも出来た>#aprbuild]] # tar zxvf apr-1.4.6.tar.gz # cd apr-1.4.6 # ./configure --prefix=/usr/local/apr # make # make test # make install ~ &size(16){&font(b){3. APR-Utilのビルド・インストール};}; # tar zxvf apr-util-1.5.1.tar.gz # cd apr-util-1.5.1 # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util # make # make test # make install ~ &size(16){&font(b){4. Apacheのビルド・インストール};}; initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。 よって、今回は“apache”という名前にしてインストールする。 [[PCRE>Linux/PCRE]]がまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。 # tar zxvf httpd-2.4.3.tar.gz # cd httpd-2.4.3 # vi config &font(b){※全部一行で書く}; --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre --enable-ssl --enable-suexec --enable-rewrite --enable-auth-digest --enable-dav --enable-so # ./configure `cat ./config` # make # make install ~ &size(16){&font(b){5. aprとapacheの一括ビルド};}; #aname(aprbuild) いつの間にか、ポータブルランタイムとapacheの一括ビルドが出来るようになっていた。 [[Apache PRP:+https://apr.apache.org/download.cgi]]から、apr / apr-iconv / apr-utilをダウンロードし、 それぞれを下記の様に配置すれば、apacheと同時にビルドする事が出来る。 一括ビルドを行う時は./configureに「--with-included-apr」を付与して、srclib内を参照するようにする。 httpd-2.4.**/srclib/apr httpd-2.4.**/srclib/apr-iconv httpd-2.4.**/srclib/apr-util ~ *設定 [#i61f7aa6] &size(16){&font(b){I. apacheスクリプトのコピー};}; # cp /usr/local/apache/bin/apachectl /etc/init.d/apache # chmod 755 /etc/init.d/apache # ln -s /etc/init.d/apache /etc/init.d/httpd # ln -s ../init.d/apache /etc/rc3.d/S96apache initスクリプトはこっちの方が良いかも # cp ${Apache_SrcDIR}/build/rpm/httpd.init /etc/init.d/apache ~ &size(16){&font(b){II. ユーザーの準備};}; # adduser www -d /var/apache -s /sbin/nologin # rm -rf /var/apache # mkdir -p /var/apache/html # chown -R root.www /var/apache ~ &size(16){&font(b){III. apacheの設定};}; # cd /usr/local/apache/conf &font(b){※以下のファイルを設定していく。他は必要の応じて}; # vi httpd.conf # vi extra/httpd-default.conf # vi extra/httpd-languages.conf ~ *アクセス制限 [#qeaec962] apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意 &size(16){&font(b){A. apache2.2};}; 全てのアクセス許可する Order allow,deny Allow from all 全てのアクセスを拒否する Order deny,allow Deny from all ~ &size(16){&font(b){B. apache2.4};}; 全てのアクセスを許可する Require all granted 全てのアクセスを拒否する Require all denied ~ ---- また、apache2.2系統でIPv6をAllow/Denyすると、バグ影響で細かいIPv6指定が出来ない。 内部処理的には、IPv6アドレスを指定してもIPを2進数に直した際の前方完全一致となる為、 &font(b){広範囲のIPv6アドレス制御};しか出来なくなる -参考:[[CentOS bugs:+https://bugs.centos.org/view.php?id=9313&history=1]] -参考:[[serverfault:+https://serverfault.com/questions/484239/apache-ipv4-deny-directive-blocks-ipv6-addresses]] 0010 1010 . 0000 0001 . 000 | 42 . 1 . 0 | 0010 1010 0000 0001 : 000 | 0 0001 1110 1000 2a01 : | 1e8 | ^ cut here バグを回避する場合は、APR-v1.4.7以上にアップデートするか、 apache2.4系にアップグレードすると修正されている。 ~ *モジュール改変 [#jca360bb] 一部のApacheモジュールはApache2.2用に作られている為、 APIが大幅に変更されたApache2.4ではビルドが通らず、追加インストール出来ない物がある。 しかし、有名なモジュールについてはCentOSやopenSUSE辺りが、 Apache2.4でもビルド出来るようにするパッチをリリースしているので、それらを当てればビルドが通る様になる。 ~ &size(16){&font(b){mod_auth_kerb};}; ApacheでSingleSign-Onを実装する場合に必須となるモジュール パッケージ管理で入れる時は自動でインストール出来るのだが、 Apacheをソースからインストールしている時は、モジュールもビルドする必要がある。 &font(b){・ドキュメント類}; | ドキュメント | [[Kerberos Module for Apache:+http://modauthkerb.sourceforge.net/]] | | オリジナルソース | [[sourceforge:+https://sourceforge.net/projects/modauthkerb/files/mod_auth_kerb/]] | | 適用ファイル名 | mod_auth_kerb-5.4.tar.gz | &font(b){・オリジナルパッチ}; |ディストリ|パッチ配布元|適用済みパッチリスト| |CentOS|[[httpd24-mod_auth_kerb:+https://git.centos.org/tree/rpms!httpd24-mod_auth_kerb.git/b2b3b1132acba0201623b58fc0ad1a3e9e8dc3f2/SOURCES;jsessionid=1nf4zqhuagt051k2g9mccxzqm1]]|delegation.patch| |~|~|fixes.patch| |~|~|handle-continue.patch| |~|~|httpd24.patch| |~|~|longuser.patch| |~|~|rcopshack.patch| |~|~|s4u2proxy.patch| |openSUSE|[[Kerberos Module for Apache:+https://build.opensuse.org/package/show/Apache:Modules/apache2-mod_auth_kerb]]|configure.patch| |~|~|cache_auth.patch| &font(b){・適用方法}; [1] オリジナルソース(mod_auth_kerb-5.4.tar.gz)をダウンロード [2] パッチ適用済みソース(mod_auth_kerb-5.4.src_patch.tar.gz)を下記添付ファイルリストからダウンロード [3] ダウンロードした2つのファイルを解凍 [4] パッチ適用済みソースの(README、configure.in、src/mod_auth_kerb.c)をオリジナルに上書き ----- $ md5sum mod_auth_kerb-5.4.src_patch.tar.gz e9260e537e498b88429074c12185e817 mod_auth_kerb-5.4.src_patch.tar.gz