2012-01-18 9 views
1

私はUbuntuサーバーに標準Apache2インストールを持っています。既定の設定ではScriptAliasを使用して/cgi-bin//usr/lib/cgi-bin/を参照します。 Python CGIスクリプトを/usr/lib/cgi-bin/に置くと、それが実行されます。/cgi-bin/folderからPython CGIを実行する

私は適切な権限を持つ/var/www/cgi-bin/を作成し、ScriptAlias行を削除し、/var/www/cgi-bin/にCGIファイルを移動し、Apache2の再起動、サイトのdefaultファイルにDirectoryエントリを変更しましたが、私は実行するスクリプトを取得することができませんでした。実行される代わりに、ブラウザにテキストファイルとして表示されていました。スクリプトを呼び出すHTMLファイルは/cgi-bin/SCRIPTを参照していますので、変更しません。私は/cgi-bin/var/www/cgi-binのバリエーションを設定ファイルで成功裏に試しました。実行するPython CGIファイルを取得するには/var/www/cgi-binから?

答えて

4

あなたがScriptAliasディレクティブを削除した場合、あなたはおそらくディレクトリのか.htaccessファイルにメイン設定に以下の行を追加する必要がありますことを確認してください

Options +ExecCGI 
AddHandler cgi-script py 
+0

私のCGIスクリプトは.cgiで終わるので、私はそれが...私の場合は 'cgi-script cgi'ですか?私は今それをテストします。 – SabreWolfy

+0

'default'ファイルの' Directory'セクションの下に置いた場合、これらの行がうまくいかないことに気付きました。私はそれらをファイルの本体に入れたときに働いていました。私はそれが '.htaccess'ファイルに置かれるほうがいいでしょう、その効果はそのフォルダだけにローカルなのですか? – SabreWolfy

+0

@SabreWolfy、私はいつも自分を '.htaccess'に置いています=)しかし、' VirtualHost'セクションに他の 'AddHandler'ディレクティブがあるので、両方とも動作するはずです。 – newtover

0

  1. ファイルお呼び出し自体が十分な許可を持っています
  2. あなたが呼び出しているファイルの拡張子が.htaccessファイルにあります(newtoverの答えを参照)
  3. は、ファイルの最初の行にスクリプトをどのように実行するかを指定します。 foo.plを呼び出す場合は、#!/ usr/bin/perlが最初の行にあることを確認してください。
関連する問題