Apache „Klient odrzucony przez konfigurację serwera” pomimo zezwolenia na dostęp do katalogu (konfiguracja vhosta)


Zainstalowałem wirtualnego hosta w Apache na Ubuntu, ale przeglądarka ciągle wyświetla błąd „403 Odmowa dostępu”; magazyn mówi „

Klient odrzucony przez konfigurację serwera:/home/remix/

".
Szukając rozwiązania w internecie, znalazłem wiele postów na temat dostępu do katalogów (Zezwalaj od wszystkich itp.), Ale z tego co wiem, już to zrobiłem. W

httpd-vhosts.conf

oto kod:
NameVirtualHost *:80<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
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 też
127.0.0.1    testproject

do pliku/etc/hosts.
Ponadto folder/home/remix/zawiera plik index.html, a vhosty są zawarte w httpd.conf.
Czy coś mi brakuje?

Edytować:

To jest wpis dziennika błędu serwera 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/

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zmień konfigurację autoryzacji:
<Directory/home/remix/>
#...
Order allow,deny
Allow from all
</Directory>
... do wersji tego samego Apache 2.4.
<Directory/home/remix/>
#...
Require all granted
</Directory>

Przegląd

dokument zawierający przegląd aktualizacji
http://httpd.apache.org/docs/2.4/upgrading.html
aby uzyskać informacje na temat innych zmian, których możesz potrzebować, i pamiętaj, że większość przykładów konfiguracji i pomocy w znalezieniu w Google (a także na tej stronie) pochodzi z wersji 2.2.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdź uprawnienia do katalogu. Założę się, że jest skonfigurowane tak, aby odmawiać dostępu nikomu poza tobą, na przykład:
$ ls -ld/home/remix
drwx------ 92 remix remix 4096 Aug 17 22:59/home/remix

Jeśli zobaczysz
         drwx------
to wtedy jest. Napraw to, uruchamiając:
chmod a+x/home/remix
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Upewnij się, że uruchomiony użytkownik
         httpd
usługa ma dostęp do tych katalogów.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

„Klient odrzucony przez konfigurację serwera” oznacza, że ​​sam serwer Linux odmawia dostępu do pliku, a nie Apache.
Jeśli przyznanie dostępu przez zmianę uprawnień/własności/członkostwa w grupie nie rozwiąże problemu, przyczyną trasy może być odmowa SELinux dostępu do dowolnego folderu, który nie ma odpowiedniego kontekstu SE Linux, jak opisano w

„Przenoszenie Apache DocumentRoot pod Selinux”
http://www.terminalinflection. ... inux/
.
  • Jeśli tymczasowo wyłączysz SELinux, uruchamiając
               setenforce 0         
    udostępnia plik
  • Podczas ponownego włączania SELinux za pomocą
               setenforce 0         
    sprawia, że ​​plik jest ponownie niedostępny

Wtedy SELinux prawdopodobnie odmawia dostępu, niezależnie od uprawnień do pliku.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Innym prostym (ale trudnym) błędem, który może powodować ten problem u ludzi, jest sytuacja, gdy katalogi użytkownika nie znajdują się na przykład w/home/*, ale gdzie indziej./nethome/*
Dostarczony userdir.conf zawiera coś takiego: (ale z Userdir: wyłączone)
$ cat/etc/httpd/conf.d/userdir.conf 
<IfModule mod_userdir.c>
UserDir enabled
UserDir public_html
</IfModule><Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>

Specyfikacja katalogu zakłada ~ user ==/home/user. Po prostu zmień lub dodaj specyfikację katalogu, w którym faktycznie znajdują się katalogi domowe użytkowników.

Całkiem oczywiste, ale zajęło mi trochę czasu, zanim to rozgryzłem !! :-P SPIRIT!

np. ~ user ==/nethome/user
<Directory "/nethome/*/public_html">
AllowOverride All
Options MultiViews Indexes Includes FollowSymLinks
Require all granted
</Directory>

Zobacz także, aby uzyskać więcej ogólnych informacji na temat otwartej autoryzacji w tym katalogu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W moim przypadku dodałem aplikację (phpMemcacheAdmin), ale nie zawracałem sobie głowy dodawaniem montaży do stosu wdrożeniowego, więc nawet ich tam nie było (rzeczy kubernetes) podczas uruchamiania. Spędziłem godzinę próbując usunąć dodatkowe ukośniki i zmienić uprawnienia, aż w końcu stwierdziłem, że ich tam nie ma.
Jeśli próbujesz wdrożyć na k8s, sprawdź dokładnie, czy je masz (jeśli używasz hostPath):
...
volumeMounts:
- mountPath:/opt/phpMemcacheAdmin
name: memcached-admin...
- hostPath:
path:/...../opt/phpMemcacheAdmin
type: ""
name: memcached-admin

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się