Apache
Linux用WWWサーバの代名詞。
apache2.4からは設定方法が色々と変更されているので注意。
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も入れておく。
2. APRのビルド・インストール
apacheのソースと一緒にビルドする方法もあるらしいが、
自分の環境では上手くいかなかったので別々にビルドする -> 一括ビルドも出来た
# tar zxvf apr-1.4.6.tar.gz # cd apr-1.4.6 # ./configure --prefix=/usr/local/apr # make # make test # make install
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
4. Apacheのビルド・インストール
initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。
よって、今回は“apache”という名前にしてインストールする。
PCREがまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。
# tar zxvf httpd-2.4.3.tar.gz # cd httpd-2.4.3 # vi config
※全部一行で書く
--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
5. aprとapacheの一括ビルド
いつの間にか、ポータブルランタイムとapacheの一括ビルドが出来るようになっていた。
Apache PRPから、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
I. apacheスクリプトのコピー
# cp ${Apache_SrcDIR}/build/rpm/httpd.init /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
systemdの場合は次のファイルを作成する
# vi /usr/lib/systemd/system/apache.service # echo 'd /var/run/apache 755 root root -' > /usr/lib/tmpfiles.d/apache.conf # systemctl enable apache # cat /usr/lib/systemd/system/apache.service --- [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target Documentation=man:httpd(8) Documentation=man:apachectl(8) [Service] Type=simple PIDFile=/var/run/apache/httpd.pid Environment=CONFIG=/usr/local/apache/conf/httpd.conf ExecStart=/usr/local/apache/bin/httpd -f ${CONFIG} $OPTIONS -DFOREGROUND ExecReload=/usr/local/apache/bin/httpd -f ${CONFIG} $OPTIONS -k graceful ExecStop=/usr/local/apache/bin/httpd -f ${CONFIG} $OPTIONS -k graceful-stop KillSignal=SIGCONT PrivateTmp=true [Install] WantedBy=multi-user.target Alias=httpd.service
II. ユーザーの準備
# adduser www -d /var/apache -s /sbin/nologin # rm -rf /var/apache # mkdir -p /var/apache/html # chown -R root.www /var/apache
III. apacheの設定
# cd /usr/local/apache/conf
※以下のファイルを設定していく。他は必要の応じて
# vi httpd.conf # vi extra/httpd-default.conf # vi extra/httpd-languages.conf
apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意
A. apache2.2
全てのアクセス許可する
Order allow,deny Allow from all
全てのアクセスを拒否する
Order deny,allow Deny from all
B. apache2.4
全てのアクセスを許可する
Require all granted
全てのアクセスを拒否する
Require all denied
また、apache2.2系統でIPv6をAllow/Denyすると、バグ影響で細かいIPv6指定が出来ない。
内部処理的には、IPv6アドレスを指定してもIPを2進数に直した際の前方完全一致となる為、
広範囲のIPv6アドレス制御しか出来なくなる
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系にアップグレードすると修正されている。
一部のApacheモジュールはApache2.2用に作られている為、
APIが大幅に変更されたApache2.4ではビルドが通らず、追加インストール出来ない物がある。
しかし、有名なモジュールについてはCentOSやopenSUSE辺りが、
Apache2.4でもビルド出来るようにするパッチをリリースしているので、それらを当てればビルドが通る様になる。
mod_auth_kerb
ApacheでSingleSign-Onを実装する場合に必須となるモジュール
パッケージ管理で入れる時は自動でインストール出来るのだが、
Apacheをソースからインストールしている時は、モジュールもビルドする必要がある。
・ドキュメント類
ドキュメント | Kerberos Module for Apache |
オリジナルソース | sourceforge |
適用ファイル名 | mod_auth_kerb-5.4.tar.gz |
・オリジナルパッチ
ディストリ | パッチ配布元 | 適用済みパッチリスト |
CentOS | httpd24-mod_auth_kerb | delegation.patch |
fixes.patch | ||
handle-continue.patch | ||
httpd24.patch | ||
longuser.patch | ||
rcopshack.patch | ||
s4u2proxy.patch | ||
openSUSE | Kerberos Module for Apache | configure.patch |
cache_auth.patch |
・適用方法
[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