普段は迷わずPHP5.3使うのですが、今やってるサイトがPHP4なのでインストールしたときのログを残しておきます。

前提

  • PHPはシステムにもともと入ってるPHP5.3(portsでインストールしたものでない)
  • ApacheはportsでインストールしたApache2.2

どのようにするか

PHP4はソースからインストールする。makeしてできるApahceのモジュールのMIMEタイプを『application/x-h-httpd-php4』で作成する。バーチャルホストの設定でPHP4で動くようにする。

make準備

[suusuke@macbook ~]$ curl -o php-4.x.tar.gz -L http://jp2.php.net/get/php-4.4.9.tar.gz/from/this/mirror [suusuke@macbook ~]$ tar zxvf php-4.x.tar.gz [suusuke@macbook ~]$ cd php-4.4.49
sapi/apache2handler/sapi_apache2.cを変更する。
#define PHP_MAGIC_TYPE "application/x-httpd-php"
#define PHP_MAGIC_TYPE "application/x-httpd-php4"

configure

とりあえず最低限、必要そうなものをオプションに追加しました。 また、Snow Leopardでconfigureする時はlresolvを有効にする必要があるようなので、『EXTRA_LIBS=-lresolv』で指定する。

[suusuke@macbook ~]$ EXTRA_LIBS=-lresolv \ ./configure --prefix=/usr/local/lib/php-4.4.9 \ --with-apxs2=/usr/sbin/apxs \ --enable-mbstring \ --with-pgsql=/opt/local/lib/postgresql83 \ --with-pdo-pgsql=/opt/local/lib/postgresql83 \ --with-mysql \ --with-pdo \ --with-gd \ --with-png-dir=/opt/local \ --with-jpeg-dir=/opt/local \ --with-zlib-dir=/opt/local
ないものは基本portでインストール。 今回インストールしたのは
[suusuke@macbook ~]$ sudo port install libpng [suusuke@macbook ~]$ sudo port install jpeg
の二つ。 MySQL、PostgreSQLのインストールについてはSnow Leopard に PostgreSQL インストールSnow Leopard に MySQL 再インストールを参照。

make

[suusuke@macbook ~]$ make [suusuke@macbook ~]$ sudo make install

設定

[suusuke@macbook ~]$ sudo cp php.ini-recommended /usr/local/lib/php-4.4.9/lib/php.ini
PHP.iniのinclude_pathにPEARのパスを追加。。。したいところだったんだけど、PEARがインストールされない。。。 とりあえず、PEARは未だにPEAR::DB使ってるんみたいなんで、手動で入れることに。

aliasの設定

~/.bashrc

alias php4=/usr/local/lib/php-4.4.9/bin/php
反映
[suusuke@macbook ~]$ source ~/.bashrc

確認

[suusuke@macbook ~]$ php4 -v PHP 4.4.9 (cli) (built: Mar 26 2011 10:08:22) Copyright (c) 1997-2008 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

バーチャルホストの設定

# test.php5.info DocumentRoot "/Library/WebServer/Documents/php5/public_html" ServerName test.php5.info AllowOverride All order deny,allow allow from All # test.php4.info DocumentRoot "/Library/WebServer/Documents/php4/public_html" ServerName test.php4.info AllowOverride All order deny,allow AddType application/x-httpd-php4 .php allow from All
phpinfo();で確認してみる。 削除したいときは


/usr/local/lib/php-4.4.9
php-x.x.x/
      bin/ 	PHPコマンドなど
      etc/ 	pear設定ファイル
      include/ 	ヘッダファイルなど
      lib/php 	PEARライブラリディレクトリ
      man/ 	マニュアル

/opt/local/apache2/modules/libphp4.so

を削除するだけ。

参考にさせてもらったサイト

http://www.atmarkit.co.jp/fcoding/articles/macxphp/02/macxphp02a.html