Perl-файлы в VirtualHost CGI-BIN всегда загружаются (Debian 6 и Apache2)
Я рвал на себе волосы, пытаясь заставить это работать, но независимо от того, что я делаю, я не могу получить файлы.pl для выполнения в cgi-bin моего виртуального каталога. Последние 4 часа я искал решения и перепробовал все, с чем сталкивался, и у меня ничего не работает. Perl-файлы отлично работают для моего сайта по умолчанию, но не для моего виртуального хоста. Единственный файл mopdified в моей конфигурации Apache2 - это файл /etc/apache2/sites-available/default, и в настоящее время он выглядит следующим образом (за исключением sitename):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<Directory /var/www/cgi-bin>
Options +ExecCGI
AllowOverride All
AddHandler cgi-script cgi pl
Order allow,deny
allow from all
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride All
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAlias subdom.mysite.com
DocumentRoot /var/www/subdom
<Directory /var/www/subdom/cgi-bin>
Options +ExecCGI
AllowOverride All
AddHandler cgi-script cgi pl
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Любая помощь очень ценится.
2 ответа
Я думаю, что это опечатка: вам нужен период до пл.
AddHandler cgi-script .cgi .pl
Также проверьте это: Как мне настроить Apache 2 для запуска сценариев Perl CGI?
Это звучит и выглядит знакомо:
В моем случае я ошибся с моим ScriptAlias
директивы. Я раскомментировал оригинал, но забыл настроить новый.
Как только я правильно изменился и сохранил мой sites-available/default
Конфигурационный файл из этого:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
.. к этому:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
... и перезагрузил apache2, он просто работал: он перестал отображать мои скрипты в виде текста и начал запускать их как скрипт. Кроме того, он больше не отображается /var/www/cgi-bin
как каталог в браузере, но теперь правильно отображается ошибка:
Forbidden
You don't have permission to access /cgi-bin/ on this server.