ESC

PHPをCGIとして実行する。

本番環境にあったファイルを開発サーバに持ってきて、設定。
ところが、Internal Server Error(500)が出続ける。


Apacheのエラーログには"Premature end of script headers"と出ていたので、本番環境と開発環境にて、PHPのパスが違ったことに気付いた。


いちいち、ソースを書き換えるのはわずらわしいので、シンボリックリンクで、本番環境のパスを開発環境のパスへ飛ばすことにする。


すると今度は、Security Alertが表示された。
そのSecurity Alertの英文から、php.iniのcgi.force_redirectを修正すれば良いらしいということをなんとか読み取る。
cgi.force_redirect = 1
cgi.force_redirect = 0
これでページが表示された。

cgi.force_redirect は、ほとんどのWebサーバのもとで CGI として PHP を実行する際のセキュリティを確保するために必要です。 未定義のままの場合、PHPはデフォルトでこれを on にします。 これを off にする時は、自己責任 の下に 行なってください。

注意: Windowsユーザ: IISでは安全にこれをoffにすることができ、 実際には、off にすることが「必要」です。 OmniHTTPD または Xitami を動作させるには、これを off にする「必要」 があります。

PHP マニュアルより抜粋


SecurityAlertで出てきた英文の内容はこのことみたい。


ん?パスのリダイレクトはAliasの設定でもイケたりするのか??