PHPモジュール版からCGI版へ切り替え

手持ちのサーバにApache入れるとだいたいPHPはモジュール版です。
レンタルサーバではセキュリティ上の理由からCGI版だったり、モジュール版とCGI版とを選択できたり。

おおまかな違いは

perlやPHPについて、CGI方式とモジュール方式の比較
http://oshiete.goo.ne.jp/qa/4155506.html

より

モジュール:
スピードが速い(起動終了処理が不要)
メモリ使用量が多い(アクセスしていなくてもメモリが解放されない)
rootやapache権限で実行される

CGI:
スピードが遅い(起動終了処理が必要)
メモリ使用量が少ない(アクセスがなければメモリを使用しない)
どんな言語でも作成できる
SuExecを使用できる(ユーザー権限で実行できる)

くらいの認識でOKかと。

んで、あんまり使う機会は無いかもですが一応モジュール版からCGI版への切り替え方法をメモ。
 


 

[1]確認

httpd.confには、デフォルトで
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"というのがあるので、とりあえずその記載を一応確認しておく。

[2]CGI版PHPをコピー

次に、/usr/bin/php-cgiを/var/www/cgi-bin/の中にコピーする
cp /usr/bin/php-cgi /var/www/cgi-bin/

CGI版PHPの場所が「/usr/bin/」内に無ければ
which php-cgiでチェケラです。

[3]httpd.conf編集

httpd.confや.htaccessの中に

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

と記述する

[4]Apacheリロード

アパッチ再読み込み
service httpd reloadまたは、
/etc/rc.d/init.d/httpd reloadで、完了です。

[5]ちゃんとできているか確認

確認方法はphpinfo()で「ServerAPI」の項目を見ればできます。

CGI版は「CGI/FastCGI」で、
モジュール版は「Apache 2.0 Handler」と表示されます。

・モジュール版

・CGI版

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

QRコード作成

Leave a reply:

Your email address will not be published.