====== phpの小技集 ====== ===== PHP4とPHP5を同一サーバ上でモジュールとして設定する方法 ===== 環境としてはPHP5はyumでパッケージ管理しようと思う。\\ PHP4はサポートが切れてるのでソースでインストールしてバージョンアップは基本的にしない方向で構築をする。\\ \\ * PHP5のインストール # yum -y install php * PHP4のインストール ソースファイルのダウンロード # wget http://jp2.php.net/get/php-4.4.9.tar.gz/from/jp.php.net/mirror # tar zxvf php-4.4.9.tar.gz # cd php-4.4.9 このままインストールするとMAGIC TYPEがPHP5とかぶってしまってApacheが正常に起動しなくなるので以下のファイルを修正する # vi sapi/apache2handler/sapi_apache2.c 以下の設定行をみつけて修正をします。 #define PHP_MAGIC_TYPE "application/x-httpd-php"   ↓ #define PHP_MAGIC_TYPE "application/x-httpd-php4" 変更が完了したら保存して終了 で・・・環境が整っていればこのままコンパイルしてインストールすればいいのだけど最低限の機能は必要なので以下をインストールしておく # yum -y install httpd-devel # yum -y install libjpeg-devel # yum -y install libpng-devel # yum -y install freetype-devel # yum -y install postgresql-devel # yum -y install mysql-devel このくらいインストールしとけば問題ないかな?\\ \\ PHP4をコンパイル、インストールしよう! # ./configure \ --prefix=/usr/local/lib/php-4.4.9 \ --with-apxs2=/usr/sbin/apxs \ --enable-mbstring \ --with-pear \ --with-openssl \ --with-gd \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --enable-pcntl \ --with-mysql \ --with-pdo-mysql \ --with-pgsql \ --with-pdo-pgsql \ --enable-ftp \ --enable-sockets ※コンフィグオプションはそれぞれの環境にあわせて修正する # make 本当はテストした方が良いんだけどたぶん大丈夫なのでインストールしちゃう(w # make install * PHP4の設定 # cp php.ini-recommended /usr/local/lib/php-4.4.9/lib/php/php.ini # vi /usr/local/lib/php-4.4.9/lib/php/php.ini 以下の設定行をみつけてコメントアウトを外して修正 ;include_path = ".:/php/includes"   ↓ include_path = ".:/usr/local/lib/php-4.4.9/lib/php" aliasを設定しておこう # vi /etc/profile 最終行に以下を追加 alias php4=/usr/local/lib/php-4.4.9/bin/php alias pear4=/usr/local/lib/php-4.4.9/bin/pear 追加し終わったら保存して終了 設定を反映させるのに以下のコマンドを実行 # source /etc/profile バージョンの確認をしてみよう\\ php -v\\ PHP5のバージョンが表示されましたか??\\ php4 -v\\ PHP4のバージョンが表示されましたか??\\ 最後にapacheでどう振り分けるかの設定をする\\ 【追加:2009年3月25日】\\ このままapacheを起動するとphp4⇒php5の順にモジュールをロードしてしまいエラーとなるのでhttpd.confとphp.confの修正を行う。 # vi /etc/httpd/conf.d/php.conf LoadModule php5_module modules/libphp5.so   ↓ コメントアウトします。 # LoadModule php5_module modules/libphp5.so # vi /etc/httpd/conf/httpd.conf php4のLoadModuleよりも上にphp5のLoadModuleを追加 LoadModule php5_module modules/libphp5.so 基本はPHP5を使い、必要に応じてPHP4に変更する事にするためには\\ AddType application/x-httpd-php4 .php を必要に応じたconfファイル内で設定すればおっけ~\\ .htaccessで設定も可能だよ\\