PHP4とPHP5の共存

時々PHP4とPHP5の共存の話題が出るけどCGIなら比較的簡単にできる。
Debianならもっと簡単に出来たのでそのメモ。


極める!PHPの上鍵さんの記事を参考にしました。



まずはPHP5.1を使いたいのでapt-lineを編集。

deb http://people.debian.org/~dexter php5.1 woody

sargeならwoodyのところをsargeに。
(これを間違うとモジュールのインストールで依存関係が解決しない場合が出てくるので注意)

そんで

apt-get update
apt-get install php5-cgi


あとはApacheの設定を編集する。

<VirtualHost *>
DocumentRoot "/home/foo/php5"
serverName php5.example.com
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
</VirtualHost>

<Directory "/home/foo/php5">
LoadModule actions_module /usr/lib/apache2/modules/mod_actions.so

AddHandler php5-script .php
Action php5-script /cgi-bin/php5.1

DirectoryIndex index.php index.html
Options ExecCGI

</Directory>

これで完了。
あとは
apt-cache search php5
で必要なモジュールを入れれば良し。


簡単な上に既存システムを壊す心配がない。


php5.1-pcntl - Process Control module for PHP 5.1
php5.1-pdo - PDO module for PHP 5.1
php5.1-pdo-mysql - PDO MySQL driver module for PHP 5.1
php5.1-pdo-pgsql - PDO PostgreSQL driver module for PHP 5.1
php5.1-pdo-sqlite - PDO SQLite v3 driver module for PHP 5.1
php5.1-pgsql - PostgreSQL module for PHP 5.1

えっとpdoが使えると言ってもphp5.1-pdo-*をそれぞれ入れないと使えないのかな。
今は3種類だけか・・。


まぁOracleに切り替えるとか有り得ないからmysqlとpgsqlがあればいいんだけど。
Oracleを使うんだったらOracle専用の関数やら用法やらでごりごり書いた方がいいよなぁ。



一点だけ、DebianApacheがデフォルトでactions_moduleをロードしてなくてハマりかけた。