0

私はユニークな問題に直面しています。Apache 2.4.1 をセットアップしました。以下は私の構成です。

ServerRoot "prakash_prasad/bin"
AddHandler cgi-script .py
ScriptAlias /~prakash_prasad/ "/x/home/prakash_prasad/public_html/"
ScriptAlias /test/ "/x/test/prakash_prasad/public_html/"
DocumentRoot "/mybox/prakash_prasad/bin/htdocs"
<Directory "/x/test/*/public_html/">
    Options +ExecCGI
    Options ExecCGI
    Order allow,deny
    Allow from all
    Options All
    SetHandler cgi-script
    AddHandler cgi-script .py
    AllowOverride None
    Require all granted
    AddHandler cgi-script .py
    SetHandler cgi-script
    AllowOverride None
    Require all granted
    Options ExecCGI
    Order allow,deny
    Allow from all
    Options All
    SetHandler cgi-script
    AddHandler cgi-script .py
    AllowOverride None
    Require all granted
</Directory>

<Directory "/x/home/prakash_prasad/public_html/*">
    Options +ExecCGI
    Options ExecCGI
    Order allow,deny
    Allow from all
    Options All
    SetHandler cgi-script
    AddHandler cgi-script .py
    AllowOverride None
    Require all granted
    AddHandler cgi-script .py
    SetHandler cgi-script
    AllowOverride None
    Require all granted
</Directory>

これで、「Hello World!」をダンプする「first.py」プログラムのサンプルができました。ブラウザに以下のURLを入力すると正常に動作します

http://:ip/test/first.py

しかし、HTML ページを読み込もうとすると、次のようになります。

http://:ip/test/index.html

ブラウザで以下のエラーが表示されます:

内部サーバーエラー

サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。

サーバー管理者 (you@example.com) に連絡して、このエラーが発生した時刻と、このエラーの直前に行った操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。

ログにいる間、次のように表示されます:

[Thu May 17 23:07:10.664648 2012] [cgid:error] [pid 10386:tid 47977877412864] (13)Permission denied: AH01241: exec of '/x/test/prakash_prasad/public_html/index.html' failed
[Thu May 17 23:07:10.665034 2012] [cgid:error] [pid 9849:tid 1232931136] [client 10.239.40.209:54712] End of script output before headers: index.html

どの設定を修正する必要があるか教えてください。

::更新::

私はある点に絞り込みましたが、問題がそれである可能性があるかどうかはわかりません:

コメントすると、cgid モジュールが問題を解決してくれました。

# LoadModule cgid_module modules/mod_cgid.so

HTML ページは正常に表示されますが、Python スクリプトは表示されません

コメントを外しながら

LoadModule cgid_module modules/mod_cgid.so

私のスクリプトは正常に動作しますが、HTML ファイルでエラーが発生します。

問題は何でしょうか?

4

2 に答える 2

2

「Options+ExecCGI」ディレクティブを使用すると、Webサーバーはpublic_htmlの下のすべてのファイルを実行可能ファイルとして扱います。したがって、opythonファイルを別のディレクトリに配置する必要があります

ScriptAlias /pyfiles/ /home/x/public_html/pyfiles/

次に、HTMLを配置します/home/x/public_html/

于 2012-09-20T08:49:04.287 に答える
0

これらは問題を引き起こす可能性があるため、構成内の重複したディレクティブを削除してみてください。つまり、最初のディレクトリに対してです。

<Directory "/x/test/*/public_html/">
    Options +ExecCGI
    Options ExecCGI
    Order allow,deny
    Allow from all
    Options All
    SetHandler cgi-script
    AddHandler cgi-script .py
    AllowOverride None
    Require all granted
</Directory>
于 2012-05-18T07:31:03.880 に答える