PHPをソースからインストールする

debian sarge にPHP5.2.0をソースからインストールした記録
構成はapache2+PHP5.2.0
apache2はdebianパッケージのものを利用
postgresqlが入っていることも前提です。
postgresql8.1.5のインストール方法は先回書きましたのでそちらを参考にしてください。
PostgreSQL8.1.5をソースからインストールする方法

準備

ここからphp-5.2.0.tar.gzをダウンロード
http://jp2.php.net/get/php-5.2.0.tar.gz/from/a/mirror
展開

$tar zxvf php-5.2.0.tar.gz
$cd php-5.2.0

configureオプションでapxs2を指定するので、あらかじめapache2-prefork-devを入れておきます。
またlibxml2とlibxml2-devも入れておきましょう。
さらに、今回はGDも有効にしたいのでlibjpeg,libpngも入れておきます。
さらに、さらに、mcryptも有効にしたいのでこれもまた入れておきます。

#apt-get install apache2-prefork-dev
#apt-get install libxml2 libxml2-dev
#apt-get install libjpeg62 libjpeg62-dev libpng3 libpng3-dev
#apt-get install mcrypt libmcrypt-dev

aptサイコー

configure

$./configure --with-apxs2=/usr/bin/apxs2 \
                  --enable-mbstring \
                  --enable-mbregex \
                  --enable-mbstr-enc-trans \
                  --enable-track-vars --with-bz2 \
                   --with-zlib 
                   --with-mcrypt \
                   --with-openssl \ 
                   --with-gd 
                   --with-pgsql=/usr/local/pgsql
(実際は1行です。)

コンパイル

$make

時間がかかる。。。

インストール

$su
#make install

Apacheの設定

make install 時に勝手に以下の一文がhttp.confに追加されるので、これをコメントアウトしておきます。
#LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
/etc/apache2/mods-available/
にphp5.loadというファイルを作成

#vi /etc/apache2/mods-available/php5.load

内容は以下

LoadModule php5_module        /usr/lib/apache2/modules/libphp5.so

同じディレクトリに以下の内容のphp5.confを作成


  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps

最後にApache2の起動時に先ほどの設定ファイルを読み込むようにする

# a2enmod php5
Module php5 installed; run /etc/init.d/apache2 force-reload to enable.

あとはApacheを再起動して完了です。

追記
phpinfo()を表示させようとしたら真っ白な画面しか表示されませんwww
まず、apacheのログを調べてみたら、以下のログがはかれていました。

[notice] child pid 24201 exit signal Segmentation fault (11)

何でだろーとよくログを見てみたら、ちょっと上のログに

Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-18 PHP/5.2.0 mod_perl/1.999.21 Perl/v5.8.4 c

とありなぜか、PHP4が有効になって入るではありませんか!
ということで無効にします。

# a2dismod php4
Module php4 disabled; run /etc/init.d/apache2 force-reload to fully disable.

もう一度Apacheを再起動しphpinfo()を表示させてみたところ問題なく動きました。
ふー
完了