私は同様の質問で多くの投稿を見てきましたが、どれも私には役に立たないようです
次の/etc/Apache2/httpd.confファイルがあります。
<Directory /var/www/index.py>
Options +ExecCGI
</Directory>
<Directory /var/www>
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AddHandler cgi-script .py
DirectoryIndex index.py
</Directory>
<Directory /var/www/tiles>
AddHandler mod_python .py
PythonHandler TileStache::modpythonHandler
PythonOption config /home/TileStache/tilestache.cfg
</Directory>
次のようにホームページにアクセスしようとすると:ホスト名のみ http://exampleHost.com エラーログに次のエラーが表示されます。
Options ExecCGI is off in this directory: /var/www/index.py
しかし http://exampleHost.com/index.py に移動すると、正常に動作します。
それで、何かが/ var/wwwディレクトリを上書きしていると思いますか?/var/wwwディレクトリに.htaccessファイルがありません。
次のファイルを変更する必要がありました。
/etc/Apache2/sites-enabled/000-default
/ var/wwwディレクトリを次のように+ ExecCGIおよびAddHandlerを含むように変更しました。
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride None
Order allow,deny
allow from all
AddHandler cgi-script .py
</Directory>
でcgiモジュールを有効にした後
Sudo a2enmod cgi
ファイルに移動して変更できます
/etc/Apache2/sites-enabled/000-default
これを読むセクションを見つける
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
これにより、ApacheにURL Hostに出会ったときに、
localhost/cgi-bin/
ディレクトリ/ usr/lib/cgi-binでリクエストしたファイルを確認し、見つかった場合はそれを実行する必要があります。これで、Directoryディレクティブ内にディレクトリを追加して、任意のディレクトリから実行できるようになります。たとえば、/ var/www(cgiファイルがある場所)にしたい場合は、
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/var/www/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
その要求で
localhost/script.cgi
完全に動作するはずです。さらに、あなたが持っていることを確認してください
libapache2-mod-Perl
パッケージがインストールされました。