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.
Другие вопросы по тегам