w Apache na Ubuntu skonfigurowałem vhost, ale w przeglądarce wciąż pojawia się błąd „403 Access zabroniony”; w dzienniku jest napisane „ Klient odmówiony przez konfigurację serwera: / home / remix / ”.
Szukając rozwiązania online, znalazłem wiele postów na temat dostępu do katalogu (Zezwalaj na wszystko itp.), Ale o ile wiem, już to zrobiłem. W httpd-vhosts.conf znajduje się następujący kod:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/htdocs/"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/home/remix/"
ServerName testproject
ServerAlias testproject
<Directory "/home/remix/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Dodałem również
127.0.0.1 testproject
do pliku / etc / hosts.
Ponadto folder / home / remix / zawiera plik index.html, a vhosty są włączone w httpd.conf.
Czy jest coś, czego nie widzę?
Edycja: To jest wpis dziennika błędów Apache:
[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587]
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
linux
apache-2.2
ubuntu
virtualhost
RemiX
źródło
źródło
Odpowiedzi:
Zmień konfigurację autoryzacji:
... do wersji Apache 2.4 tego samego.
Przejrzyj dokument przeglądu aktualizacji, aby uzyskać informacje o innych zmianach, które mogą być konieczne - i pamiętaj, że większość przykładów konfiguracji i pomocy, które znajdziesz w Google (jak również na tej stronie), dotyczy wersji 2.2.
źródło
Sprawdź uprawnienia do katalogu. Założę się, że ma to uniemożliwić dostęp do nikogo poza tobą, na przykład:
Jeśli widzisz
drwx------
dokładnie, to tak jest. Napraw to, uruchamiając:źródło
Upewnij się, że użytkownik uruchomionej
httpd
usługi ma dostęp do tych katalogów.źródło
User
parametr httpd.conf .„klient odmówiony przez konfigurację serwera” oznacza, że sam serwer Linux zabrania dostępu do pliku, a nie Apache.
Jeśli zapewnienie dostępu poprzez zmianę uprawnień / własności / członkostwa w grupie nie rozwiąże problemu, przyczyną trasy może być SELinux zabraniający dostępu do dowolnego folderu, który nie ma odpowiedniego kontekstu SE Linux, jak wyjaśniono w „Przenoszenie Apache DocumentRoot w Selinux” .
setenforce 0
spowoduje, że plik będzie dostępnysetenforce 0
powoduje, że plik ponownie nie jest dostępnyZatem na pewno dostęp jest zabroniony przez SELinux bez względu na uprawnienia do plików.
źródło
Innym prostym (ale podstępnym gotcha), który może powodować ten problem dla ludzi, jest to, że katalogów użytkowników nie ma w katalogu / home / *, ale gdzie indziej np. / Nethome / *
Podany plik userdir.conf zawiera coś takiego: (ale z Userdir: disabled)
Specyfikacja katalogu zakłada ~ użytkownik == / home / użytkownik. Po prostu zmień lub dodaj specyfikację katalogu, aby faktycznie określić katalogi domowe użytkowników.
Dość oczywiste, ale zajęło mi to trochę czasu !! :-P DUH!
np. ~ użytkownik == / nethome / user
Zobacz także ogólnie bardziej otwarte uprawnienia do tego katalogu.
źródło