[PHP-users 11850] Re: CGIモードでの拡張子PHP が動作しない

仲村 武 php-users@php.gr.jp
Thu, 28 Nov 2002 01:10:10 +0900


仲村です

On Wed, Nov 27, 2002 at 11:33:13PM +0900, Nobuyuki Koyama wrote:

> PHPをCGIモードでコンパイルし、通常にCGIモードで動作するのですが
> 拡張子を.phpにした場合に以下のようなエラーログが発生しました。
> Apacheのエラーログです。
> 
> (2)No such file or directory: exec of /home/httpd/cgi-bin/php/phpinfo.php failed
> Premature end of script headers: /home/httpd/cgi-bin/php/phpinfo.php

 こういうエラーメッセージが出るのかどうかは分かりませんが

> この.phpを.cgiにすると問題なく動作します。

 と、言うことですので
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
ScriptAliasMatch ^/(.*)/cgi-bin(.*) /home/$1/cgi-bin$2
  http://httpd.apache.org/docs/mod/mod_alias.html#scriptalias
  http://httpd.apache.org/docs/mod/mod_alias.html#scriptaliasmatch

	あるいは

AddHandler cgi-script .php
<Directory /ど/こ/か>
	Options +ExecCGI
</Directory>
  http://www.apache.jp/docs/mod/core.html#options
  http://www.apache.jp/docs/mod/core.html#directory

	あたりでしょう。

 ScriptAlias(Match) だと拡張子が何であっても、また、拡張子がない場合でも
CGI と見なされ実行されます。
==> 画像ファイルなどを置いても、CGIで実行しようとして表示できないが
    設定ファイルや、データファイルを置いていても CGIとして実行されるため
    直接は見られない。もちろん、データによっては見える可能性はありますので注意!!
 画像ファイルなどは、fpassthru で出すか CGI 以外のディレクトリに入れないと
いけません。

	詳細は御自分で調べて納得された上で設定ください。