PHPをソースからインストールしてApacheで使う設定
( ´∀`) まぁ最近はパッケージで簡単に入っちゃうけど、PHPをソースからコンパイルして入れてApacheで使うことにするか……。
なお、ググるより前に公式マニュアルに全部書いてあるので、素直にここを熟読すること。
まずApacheのmod_soを確認
普通はそのままで大丈夫なハズだが、今入っているApacheがmod_so付きかを-lオプションで確認しておこう。
$ /usr/local/apache2/bin/httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c
はい、大丈夫ですね(mod_so.c)。ちなみにこのApacheもソースから入れた。configureはこんな感じだった。
$ cat config.nice #! /bin/sh # # Created by configure "./configure" \ "--prefix=/usr/local/apache-2.2.17" \ "--enable-mods-shared=all" \ "--enable-proxy-ajp" \ "--enable-cache" \ "--enable-file-cache" \ "--enable-disk-cache" \ "--enable-mem-cache" \ "--enable-proxy" \ "--enable-ssl" \ "--enable-authn-alias" \ "$@"
なおApacheは、prefork MPM を使うこと。マルチスレッドモードは非推奨なので注意
PHPのコンパイル
ソースを拾ってきたら、configure, make, make installする。"--with-apxs2" を付けることに注意しよう。うちの設定はこう。
$ ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --prefix=/usr/local/php \ --disable-cgi \ --enable-mbstring \ --enable-mbregex \ --with-pgsql=/usr/local/pgsql
ちょっと変則的ですが、
- /usr/local/php/bin/php としてインストールする
- PostgreSQLを使うのでwith-pgsql (MySQL嫌い)
この後、make installするとhttpd.confへ以下の行が自動的に追加される。目で見て確認しておこう。
LoadModule php5_module modules/libphp5.so