0

This is taken from sites-available directory. It's a virtual host setting for apache.

Accessing myiphere/cgi-bin/ throws 403.

The directory setting for /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>

2
  • 1
    What if you access myiphere/cgi-bin/some-existing-script instead? The directory itself should give 403, because Options Indexes is not enabled (which is the proper setting for such directory), but actual scripts should work. Nov 22, 2011 at 19:50
  • You really really don't want to have full write-access to your web content directory. At the very least remove write access for other.
    – Jenny D
    Dec 17, 2013 at 14:38

1 Answer 1

1

NameVirtualHost myiphere

NEVER use hostnames for vhosts; use the following (default) instead: NameVirtualHost *:80

<VirtualHost myiphere>

Same goes here.

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

This does not belong inside a vhost; you set this ONCE, in the main server config.

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

Don't alter CGI options inside a scriptalias; this is all done for you.

Start with the following corrected setup, and remember that without the ServerName, NOTHING works.

<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>

You must log in to answer this question.