Apache2: Forbidden Nie masz uprawnień dostępu do / dir / na tym serwerze

17

Mogę uzyskać dostęp localhostdo podkatalogów, ale nieindex.html

Mój default confwygląda jak:

<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

Nawet po zezwoleniu na read/edit/writedostęp do katalogu pojawia się komunikat Zakazany błąd. Próbowałem wszystkich możliwych sposobów na forach, nie działało. Każdy ma rozwiązanie.

Między nimi próbowałem czegoś do sub directoryuzyskania dostępu:

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

Proszę zasugerować możliwe rozwiązanie. Dzięki!

Shobhit Sharma
źródło

Odpowiedzi:

17

Wyjaśnijmy vhost:

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

Następnie upewnij się, że ustawiłeś odpowiednie uprawnienia w ten sposób:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
Achu
źródło
Zrobiłem tak. Wciąż ten sam. Zrestartowałem również apache. Czy zamiast tego powinienem spróbować zmodyfikować plik apache.conf?
Shobhit Sharma
Oto rzecz. Próbowałem zmienić katalog główny, na indeks mojego katalogu domowego i nadal wskazuje on na / var / www. Muszę znaleźć odpowiedni plik conf.
Shobhit Sharma
@ShobhitSharma Proszę spróbować zaktualizowanego. Jeśli próbujesz zlokalizować swój katalog vhost w folderze domowym, powinieneś utworzyć inną zmianę vhost DocumentRoot /var/wwwzamiast modyfikować domyślny.
Achu
Po prostu świetnie. Wystarczy tylko dodać użytkownika danych www. teraz wszyscy użytkownicy mojej sieci lokalnej mogą korzystać z treści
DearDhruv,