PHPをCGIとして動かす
Posted 8月 28th, 2008 by keizi
「CGI=perl」と思われている方もいらっしゃいます。
CGIと言えば確かに最もポピュラーな言語はperlです。
しかし、CGIとは言語の事では無く動作させる仕組みを指します。
CGIとはブラウザからの要求があった際にウェブサーバー内部で処理を行い、動的にテキストを生成してからブラウザに返す仕組みのなのですが、perlで作られたスクリプトは拡張子がcgiになる事が多い為、この辺りを勘違いされる方がいらっしゃるようです。
PHPをCGIとして動かす。
PHPは通常、モジュールで動作していますが。
そのサーバーの仕様にもよりますが、それによる不都合が発生する事もあります。
最も困るものは、SAFE MODEのONですかね。
SAFE MODEで動作されてしまうと、スクリプトの実行権限がapacheとなってしまいます。
Apacheによって新規に作られたファイルやディレクトリは、apacheからしか書込みができません。
FTPで接続してファイルやディレクトリのパーミッションを変更しようにも、拒否されてしまいます。
恐らく、この辺りがPHPを忌み嫌う人を生み出す原因なのかもしれません。
これまたサーバーの仕様によるのですが、PHPをモジュール版ではなくcgi版として動作させる事ができる場合があります。
CGI版で動作させた場合のメリットとして、SAFEMODEがオフになります。
動作が微妙に重くなる等の不都合が全く無いわけではありませんが、体感できる程の違いは出ませんので気にしないで下さい。
それ以上に、SAFEMODEからの呪縛が解かれる事によって、CMSをインストールする際にも、ファイルやディレクトリのパーミッション変更の手間が省けたり、スクリプトがファイルやディレクトリを作成する際にも、ユーザー権限で作成される為、なんら制限を受けないというメリットの方が大きいです。
SAFEMODEに関してはPHP6で廃止される方向だそうですが、今の段階では「PHPをCGIとして動かす」のがベストでは?と思います。




