2016-05-31 19 views
0

私は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)。私がここで間違っているのは何ですか?

+0

メタ情報タグが機能するかどうかを確認するには、 'Ctrl + Shift + J'を使い、ネットワークタブとpyスクリプトの返されるcontent-typeをチェックするのが良い方法です。クロムは何を得ていると言いますか、テキスト/プレーンファイルですか?サーバー設定を再読み込みしたと思いますか? – Torxed

+0

ChromeとFFで尋ねるもののスクリーンショット - http://imgur.com/a/lGkN5 – geotheory

+0

私は電話しているので、まだ適切な答えを書くことはできません。あなたのMIME情報が間違っていて、pyファイルのコンテンツタイプが 'document'であり、pyスクリプトのためのコンテンツタイプがハンドラとして登録されていません。 – Torxed

答えて

0

コメントで説明したとおりです。このディレクトリ構成は、例のプレーンコピーのように見え、Webルートはおそらく他の場所にあります。

<VirtualHost *:80> 
    <directory "/var/www/htdocs"> 
     AllowOverride None Options 
     +ExecCGI -MultiViews 
     +SymLinksIfOwnerMatch 
     Order allow,deny 
     Allow from all 
     AddHandler cgi-script .py 
     Require all granted 
    </directory> 
</VirtualHost> 

たとえば、ディレクトリが変更された場所。これは通常、あなたが/var/www/htmlに応じて変更された場合のデフォルトパスです。

私はこれ以前にこのような疑問を抱いていましたが、この質問は、serverfaultの方が、Apacheの設定方法に厳密に関連していると考えている方が良いでしょう。

+0

ありがとうTorxed。私はserverfaultが理想的に優れていることに同意しますが、私は3倍多くのApacheの投稿がSOにあることに同意しました。 – geotheory

+0

@geotheory私は最初もありましたが、より頻繁なユーザーベースを取得しようとしています。そこで終わる。これはうまくいきました:)そしてあなたは大歓迎です! – Torxed

関連する問題