Я просмотрел много сообщений с аналогичным вопросом, но, похоже, ни один из них не работает для меня
у меня есть следующий файл /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? У меня нет файла .htaccess в каталоге / var / www.
После того, как вы включили модуль 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, например
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
пакет установлен.
Мне пришлось изменить следующий файл:
/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>