2013年3月29日金曜日

CentOSにapache2.4.3をインストール

どうも、俺@寝る前です。

最近アプリ開発してばっかの俺が久しぶりにLinuxネタです。

2012/2月にapache2.4.1がリリースされて1年ちょっと経過し、
じわじわと情報が増えてきたところでようやく僕もapache2.4.3をインストールしてみました。
※2013/03/28時点での最新はv2.4.4

まずソースをDLして展開。
# wget 'http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.3.tar.gz'
# tar zxvf httpd-2.4.3.tar.gz
# cd httpd-2.4.3
これまでだと、このまま./configureしてたのですが、2.4からはそれはNGです。
INSTALLファイルにこう書いています。
Consider if you want to use a previously installed APR and 
APR-Util (such as those provided with many OSes) or if you 
need to use the APR and APR-Util from the apr.apache.org
project. If the latter, download the latest versions and 
unpack them to ./srclib/apr and ./srclib/apr-util (no 
version numbers in the directory names) and use 
./configure's --with-included-apr option.
つまり--with-included-aprオプションを使うならaprとapr-utilをDL&展開して
./srclib以下にapr と apr-utilという名前で置きなさい。
ということらしい。
# cd ./srclib
# wget wget http://ftp.tsukuba.wide.ad.jp/software/apache//apr/apr-1.4.6.tar.gz
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-util-1.5.1.tar.gz
# tar zxvf apr-1.4.6.tar.gz
# tar zxvf apr-util-1.5.1.tar.gz
# mv apr-1.4.6 apr
# mv apr-util-1.5.1 apr-util
あと途中でPCREも必要だと怒られたので入れておきます。
# wget 'ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz'
# tar zxvf pcre-8.32
# ./configure --prefix=/usr/local/pcre/v8.32
# make
# make install
ではapacheのインストールを行います。
※オプションは適宜ご自由に。
# ./configure --prefix=/usr/local/apache2/v2.4.3 --with-included-apr --enable-module=so --enable-mods-shared=most --enable-ssl --enable-rewrite --with-mpm=prefork --with-pcre=/usr/local/pcre/v8.32
--with-mpm=preforkオプションを付けておかないと、デフォルトでevent-mpmでインストールされてしまいます。

非同期で多アクセスには強いですが、僕のようなPHPerな開発者にはprefork-mpmがオススメです。
# make
# make install
これで上手くインストールされるはずです。

後は基本的にこれまでのバージョンのものと同じですが、apacheの設定ファイルなんかは
order allow,deny
allow from all
だったものが、v2.4からは
Require all granted
# 禁止の場合は
# Require all denied
になります。
さらには、192.168.0.10のみ許可する場合は

  Require ip 192.168.0.10

となり、逆に192.168.0.10のみ拒否する場合は

  Require all granted
  Require not ip 192.168.0.10


# または

  Require all granted
  
    Require ip 192.168.0.10
  

のようになります。
うーん、なぜ今さら変えてくるかapache.org。
これまでの書き方は非推奨となるそうで、一応まだ使えるみたいです。

あと、MaxClientsはMaxRequestWorkersに書き変わりました。


以上でぇぇぇぇす。