私はWebページからPythonスクリプトを呼び出そうとしていますが、apache2はスクリプトを実行していません。ファイルは、次のとおりです。Apache2でPython CGIスクリプトを実行する
test.py
#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "<h1>Hello World</h1>"
index.htmlを
<form action="./test.py" method="POST">
<input type="text" size="70" name="data" value=""><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
私はa2enmod cgi
を有効にし、次のようにApacheの設定を編集した:
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
...
<directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .py
Require all granted
</directory>
</VirtualHost>
ウェブページファイルの所有権です:
# ls -lh /var/www/html/
total 16K
-rw-r--r-- 1 root root 342 May 30 13:34 index.html
-rwxr-xr-x 1 root root 88 May 30 14:11 test.py
はapachectl -M
を実行しているラインcgid_module (shared)
とのリストが表示されます。
私はフォームを見ることができますが、[Submit]をクリックすると、ブラウザはtest.py
(FF)をダウンロードするか、それを表示します(Chrome)。私がここで間違っているのは何ですか?
メタ情報タグが機能するかどうかを確認するには、 'Ctrl + Shift + J'を使い、ネットワークタブとpyスクリプトの返されるcontent-typeをチェックするのが良い方法です。クロムは何を得ていると言いますか、テキスト/プレーンファイルですか?サーバー設定を再読み込みしたと思いますか? – Torxed
ChromeとFFで尋ねるもののスクリーンショット - http://imgur.com/a/lGkN5 – geotheory
私は電話しているので、まだ適切な答えを書くことはできません。あなたのMIME情報が間違っていて、pyファイルのコンテンツタイプが 'document'であり、pyスクリプトのためのコンテンツタイプがハンドラとして登録されていません。 – Torxed