Назад | Перейти на главную страницу

Как я могу защитить паролем и позволить cgi-bin работать?

Это взято из каталога сайтов. Это настройка виртуального хоста для apache.

Доступ к myiphere / cgi-bin / выдает ошибку 403.

Настройка каталога для / var / www2 / drwxrwxrwx 8 www-data www-data

NameVirtualHost  myiphere
<VirtualHost  myiphere>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www2/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www2/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    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>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

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>

NameVirtualHost myiphere

НИКОГДА не используйте имена хостов для vhosts; вместо этого используйте следующее (по умолчанию): NameVirtualHost *:80

<VirtualHost myiphere>

То же самое и здесь.

<Directory />
        Options FollowSymLinks
        AllowOverride None
</Directory>

Это не относится к vhost; вы устанавливаете это ОДИН РАЗ в конфигурации главного сервера.

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Не изменяйте параметры CGI внутри скриптов; это все сделано для ты.

Начните со следующей исправленной настройки и помните, что без ServerName НИЧЕГО не работает.

<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>

NameVirtualHost *:80

<VirtualHost *:80>

  ServerName test.local

  ServerAdmin webmaster@localhost
  DocumentRoot /var/www2/

  <Directory /var/www2/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
  </Directory>

  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Order allow,deny
        Allow from all
  </Directory>

  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log combined
  ServerSignature On

</VirtualHost>