PHP4とPHP5を安全に共存させる方法

PHP

12:10:11, by dozo Email , 138 words, 15106 views   Japanese (JP) del.icio.us

既知の人も多いはず。

(ノ・・)ン。。。。。。(((●コロコロッ

PHP4とPHP5を共存させると言う状況は、
まぁ、滅多にないわけですが、
両対応の開発環境を構築するとか、
レンサバにPHP4しか入ってないとか、
利用する機会がゼロというわけではないかも。

方法としては片方をApacheのモジュールとして、
もう片方をCGIとして動作させる。
(両方CGIでも可。)
そして、拡張子を変えて動作するPHPを切り替えるという具合だ。
(拡張子が同じでも可能)

PHP4とPHP5のインストール先を同じにすると共存どころかつぶし合うことになるので、
どちらか一方を意図的に変更しておく。
もちろんphp.iniも二つ用意する。


ポイントは
--enableforce-cgi-redirect


[More:]


PHP4をApacheのモジュールとして、
PHP5をCGIとしてインストールする仕様で考える。
自身がメインで使用する方をモジュールにするといいだろう。
PHP4のインストールは特別変わらないので割愛。

●PHP5のインストール
コンフィギュアオプションをPHP4と揃える。(apxs, apxs2の設定は消すこと)
以下の二つを追加する。
--prefix=/usr/local/php5
--enable-force-cgi-redirect


インストール先が変わっていることと、
php.iniの場所が異なっていればいいので、
以下の方法でも可能。
--with-config-file-path=/usr/local/lib/php5
--program-suffix=5
--enable-force-cgi-redirect


また、レンタルサーバなどで既存のPHP以外のものバージョンをインストールしたいときは、
インストール先をホームにしておく。
--prefix=$HOME/local
--enable-force-cgi-redirect


あとはお決まりのmakeと、
cgi-binディレクトリにファイルをコピーしておく
$ make
# make install
# cp /usr/local/php5/bin/php /usr/lib/cgi-bin/php


そして、PHPをcgi-binディレクトリにコピーしておくのと、
php.iniを用意しておく。
$ make
# cp /usr/local/php5/bin/php /usr/lib/cgi-bin/php
# cp ./php.ini-dist /usr/local/php5/lib/php.ini



●Apacheの設定
ApacheではCGI動作の部分を設定する。
場所はhttpd.conf、.htaccessのどちらでも可。
ディレクティブもどこで書いても良い。
Action php5-script /cgi-bin/php
AddHandler php5-script .php5


これで拡張子がphp5のプログラムは、
php5が動き出すようになる。



上記の方法ではApacheでExecCGIを指定しているディレクトリにPHP本体を置かなければ動作しない。
それを避けるにはPHP本体をWebのディレクトリから外したところに起き、
CGI起動プログラムにPHPの場所を指定する。
#!/usr/local/bin/php

ExecCGIディレクトリにPHPプログラムを置き、
拡張子を.cgiに変更。
プログラムのパーミッションを実行可能にしておき、
PHPプログラムの先頭行に上記のコードを追加する。

こうして置くと、
プログラム本体をWeb上に公開しなくて済む。




おまけ。
途中こんなエラーが出たら、
Invalid command 'Action', perhaps mis-spelled or defined by a module not included in the server configuration

単にmod_actionsが入っていないだけなので、
下記のコマンドを打ち込みmod_actionsをロードする。
# /usr/sbin/apache-modconf apache enable mod_actions

Apache再起動も忘れずに。

Trackback address for this post:

http://hain.jp/htsrv/trackback.php/82

Comments, Trackbacks:

No Comments/Trackbacks for this post yet...

Leave a comment:

Your email address will not be displayed on this site.
Your URL will be displayed.

Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Line breaks become <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))
This is a captcha-picture. It is used to prevent mass-access by robots.

Please enter the characters from the image above. (case insensitive)

powered by b2evolution

shinobi

Neighbors
Relative
Favorites
PR

極論istの技術屋を始めて早幾年。 流れの速い業界の波にもまれながらも精一杯生きている様をとくとごらんあれ。

Archives
スポンサー

Latest bookmark
Search

Categories

Who's Online?
Misc
Syndicate this blog XML

Valid XHTML 1.0! Valid CSS! Valid RSS 2.0! Valid Atom 1.0!