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!

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

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.