Apache2: Verboten Sie haben keine Berechtigung, auf / dir / auf diesem Server zuzugreifen

17

Ich kann localhostaber nicht auf die Unterverzeichnisse zugreifenindex.html

Meine default confsieht aus wie:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/*/>
    Allow from None
    Order allow,deny
</Directory>
<Directory /var/www/>
    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 ${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

Auch nachdem der read/edit/writeZugriff auf das Verzeichnis zugelassen wurde, wird der Fehler "Verboten" angezeigt. Versucht alle möglichen Auswege in Foren, hat nicht funktioniert. Jeder hat eine Lösung.

Dazwischen habe ich etwas für den sub directoryZugang ausprobiert :

<Directory /var/www/*/>
    Allow from None
    Order allow,deny
</Directory>

Bitte schlagen Sie mir eine mögliche Lösung vor. Vielen Dank!

Shobhit Sharma
quelle

Antworten:

17

Machen wir den vhost klar:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        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 ${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
</VirtualHost>

Stellen Sie dann sicher, dass Sie die richtige Berechtigung wie folgt festlegen:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
Achu
quelle
Ich habe es so gemacht. Immer noch das gleiche. Apache ebenfalls neu gestartet. Sollte ich versuchen, stattdessen in apache.conf zu ändern?
Shobhit Sharma
Hier ist das Ding. Ich habe versucht, das Stammverzeichnis in meinen Basisverzeichnisindex zu ändern, der immer noch auf / var / www zeigt. Muss die richtige Conf-Datei finden.
Shobhit Sharma
@ShobhitSharma Bitte versuchen Sie es mit dem aktualisierten. Wenn Sie versuchen, Ihr vhost-Verzeichnis im Basisordner zu finden, sollten Sie nur eine andere vhost-Änderung erstellen, DocumentRoot /var/wwwanstatt die Standardänderung vorzunehmen .
Achu
Einfach toll. Nur der Benutzer www-data muss hinzugefügt werden. Jetzt können alle meine lokalen Netzwerkbenutzer den Inhalt verwenden
DearDhruv