2

私は Apache ハンドラーを謎解きしようとしています。公式ドキュメントには、次の例があります。

次のディレクティブは、拡張子が html のファイルに対する要求により、footer.pl CGI スクリプトの起動をトリガーします。

Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html

次に、CGI スクリプトは、最初に要求されたドキュメント (PATH_TRANSLATED 環境変数が指す) を送信し、必要な変更や追加を行います。

私はこの例に従おうとします。私のディレクトリ設定は次のとおりです。

  • /var/www/testsite/index.html
  • /var/www/testsite/cgi-bin/rp.sh

私の仮想ホストファイルは次のとおりです。

<VirtualHost *:80>
       ServerName http://localhost-testsite
       DocumentRoot /var/www/testsite
       <Directory /var/www/testsite>
               Action footer /cgi-bin/rp.sh
               AddHandler footer .html
       </Directory>
       ErrorLog /var/www/logs/error-testsite.log
</VirtualHost>

ドキュメントを正しく理解していれば、html ファイルが要求されたときに、html ファイル名に設定された PATH_TRANSLATED 変数を使用して rp.sh スクリプトを呼び出す必要があります。ただし、ブラウザーで localhost-testsite/index.html を開くと、予期しないエラーが発生します。

[Thu Mar 14 15:38:18 2013] [error] [client 127.0.0.1] File does not exist: /var/www/testsite/cgi-bin/rp.sh/index.html

何か不足していますか?最も重要な質問は、特定の拡張子を持つすべてのファイルを cgi スクリプトで処理するにはどうすればよいかということです。

Apache のバージョンは Apache/2.2.22 (Ubuntu) です。すべてのファイルとディレクトリには 777 パーミッションがあります。

4

0 に答える 0