私は同僚と協力して、XAMPP の MAC でローカル環境をセットアップしています。Windows では、私の vhost は以下のようになります。
http://domain.local/cgi-bin/handler.phpのような URL にアクセスすると、Web サーバーは PHP を正しく処理しますが、500 サーバー エラーとこのメッセージが表示されます...
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers:
httpd.confに別のエイリアスがあることに気付いたので、cgi-binフォルダーの名前を別の名前に変更しようとしましたが、これは効果がありませんでした...したがって、問題は権限に関連しているように思えます。
存在しないhttp://domain.local/cgi-bin/filenothere.phpにアクセスすると、予想どおり 404 がスローされ、.html/.pl ファイルの実行に失敗するため、エイリアスは正常に設定されていると考えられます。
cgi-bin フォルダに存在する権限は...
rwxrwxrwx デイブ スタッフ
ユーザーとグループによって所有されています....
デイブスタッフ
バーチャルホスト
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName www.domain.local
ServerAlias domain.local
ServerAlias api.domain.local
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot E:/home/www/www.domain.co.uk/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ E:/home/www/www.domain.co.uk/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog E:/home/www/www.domain.co.uk/logs/error.log
CustomLog E:/home/www/www.domain.co.uk/logs/access.log combined
</VirtualHost>
この PHP ファイルが実行されない原因は何ですか?
UPDATE コンテンツがPHPであることを示すヘッダーをPHPファイルの先頭に追加しようとしましたが、これは単にPHPコードを出力するだけです。
エイリアスとして指定された任意のパスにアクセスできますが、サーバーはコンテンツの実行方法を認識していないようです。これは、HTML と PHP の場合です。