違うバージョンのphpを1台のサーバーで使う方法
php4と5、5.2と5.3など、複数のバージョンのphpを1台のサーバーで使う方法。
Apacheのモジュール版(DSO版)でphp4がインストールされているとしたら、CGI版のphp5を用意する。CGI版で複数バージョン対応も可能。
Apacheの設定で、このディレクトリの下はCGI版php5.2、このディレクトリの下はCGI版php5.3のように使い分けることもできる。
やり方は簡単で、configureオプションを次のように変えてCGI版をコンパイル。
- --prefix=/usr/local/php/5.3.0 などつける(既存のphpと分けられるように)
- --with-apxs2などは外す(付けるとApacheのモジュール版がコンパイルされる)
CGI版のphpがコンパイルできたら、特定のディレクトリの下や、特定の拡張子などで、CGI版のphpが利用できるように、httpd.conf を編集。
phpは、Apache のモジュール版とCLI版だけかと思っていたら、CGI版も機能が違うものとしてちゃんとあるんですね。CGI版はモジュール版と同じように、ヘッダなどを自動で出力してくれます。CLI版でCGIしようとすると、普通のWebの画面を出すときに、自力でヘッダも出力しないといけないです。
configure オプション例
下記は、古いOSでやったときの例。XML関連やSOAP、XML-RPC、PDOなどいろいろあきらめた例。
'./configure' '--prefix=/usr/local/php/5.3.0' '--enable-bcmath' '--enable-calendar' '--with-curl' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-gettext' '--enable-mbstring' '--enable-mbregex' '--with-mhash' '--with-mysql=/usr/local/mysql' '--with-openssl' '--enable-discard-path' '--enable-sockets' '--enable-zip' '--with-zlib'
できればこのくらいやりたかった ↓
'./configure' '--prefix=/usr/local/php/5.3.0' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-gettext' '--enable-mbstring' '--enable-mbregex' '--with-mcrypt' '--with-mhash' '--enable-magic-quotes' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql=/usr/local/mysql' '--with-openssl' '--enable-discard-path' '--with-pear' '--enable-sockets' '--with-ttf' '--with-freetype-dir=/usr' '--enable-gd-native-ttf' '--enable-wddx' '--with-xmlrpc' '--enable-zip' '--with-zlib' '--with-kerberos' '--enable-pdo=shared' '--with-pdo-sqlite=shared' '--with-sqlite=shared' '--with-pdo-mysql=shared,/usr/local/mysql' '--enable-soap' '--with-xsl'
コメント