Perl-файлы в VirtualHost CGI-BIN всегда загружаются (Debian 6 и Apache2) - PullRequest
1 голос
/ 21 февраля 2012

Я рвал на себе волосы, пытаясь заставить это работать, но независимо от того, что я делаю, я не могу заставить файлы .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 ]

0 голосов
/ 16 ноября 2013

Звучит и выглядит знакомо:

В моем случае я допустил ошибку с моей директивой 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.
0 голосов
/ 21 февраля 2012

Я думаю, что это опечатка: вам нужен период перед pl.

AddHandler cgi-script .cgi .pl

Также проверьте это: Как настроить Apache 2 для запуска сценариев Perl CGI?

...