Я пытаюсь настроить LAMP-сервер в своей лаборатории, и мне не удается заставить Apache выполнять файлы .py. Вместо этого он просто загружает их. Сначала я подумал, что мой заголовок might be wrong, но когда я его изменил, к сожалению, я все еще не выполняю .py. С положительной стороны я могу загрузить сайт, запустить PHP и CRUD MySQL. Я думаю, проблема может заключаться в том, как я настраиваю свой виртуальный хост. Вот apache2.conf:Настройка Apache на Ubuntu LAMP Server для выполнения Python в виртуальном хосте
<VirtualHost *:80>
Alias "/SiteIwant" "/var/www/SiteIwant"
ServerName localhost
DocumentRoot /var/www/SiteIwant
CustomLog /var/www/SiteIwant/my_access.log combined
ErrorLog /var/www/SiteIwant/my_error.log
AddType application/x-httpd-php .php
SetEnv LD_LIBRARY_PATH /etc/init.d/mysql
<Directory /var/www/SiteIwant>
Options None ExecCGI
AddHandler cgi-script .cgi .pl .py
#AddHandler mod_python .py
DirectoryIndex index.php
AllowOverride AuthConfig
Order deny,allow
Deny from All
Allow from 999.999.999.0/24 #anonymized for posting here, but working
</Directory>
# <Directory /var/www/SiteIwant/cgi/>
# AllowOverride All
# Options +ExecCGI +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
#</Directory>
</VirtualHost>
Я пробовал и без спецификации на папке CGI, и я chkmod +rwx *.py
в /var/www/SiteIwant/cgi
. Просто для ударов (после этого не помогло), я также изменил режим интерпретатора python в/usr/bin и/usr/local/bin до + rwx.
Все остальное в файле apache2.conf, как это происходит из текущей установки Ubuntu Server-LAMP.
Я чувствую себя очень застрявшим и, как будто мне не хватает чего-то глупого/маленького.
Редактировать: Должно ли быть действительно задано на сервере Ошибка?
Если я положил AddHandler cgi-script .cgi .pl .py
за пределы виртуального хоста, я получаю ошибку разрешения 403, несмотря на chmod 777 в этой папке.
Большое спасибо за рытье. Это работало как шарм. Это закрытая сеть, поэтому я не слишком беспокоюсь о безопасности, но почему это было бы более безопасно? –
В моем примере я разрешил только _/path/to/www/yourfile.py_ выполнять CGI, поэтому даже если вредоносный файл помещается в тот же каталог, он не будет выполняться веб-сервером. – Albirew