NGINX auf Centos 7 403 error
Hi
ich gebe kurz an wie ich alles gemacht habe und was als Fehler raus kommt
ich habe einen Server auf dem ich Centos 7 installiert habe. Auf den wiederum habe ich nginx 1.10 installiert. Ich habe einen neuen User 'gamba' erstellt und dem root privilegien gegeben und habe daraufhin den root user Anmeldung verboten. Anschließen habe ich eine neue Ordner Struktur erstellt um mehrere Domains zu benutzen und das wie folgt als eingeloggter 'gamba':
Daraufhin noch
und in die /etc/nginx/nginx.conf folgendes eingefügt
Nun muss ich ja einen neuen Server Block erstellen und habe den default genommen und kopiert
und den Inhalt natürlich auf meine wert geändert wie zum Beispiel den:
Dann der Server block jetzt aktiv ist muss noch
ausgführt werden und nginx neugestartet werden soweit so gut.
Leider spuckt mir nginx folgenden fehler aus wenn ich cat /var/log/nginx/error.log ausführe
jetzt habe ich gelesen, dass nginx auf alle Eltern-Verzeichnisse eine Erlaubnis braucht . Auch wenn ich den Befehl sudo chown -R nginx:nginx auf alle Eltern ausführe ist immer noch das es Forbidden ist.
Als Notiz, PHP 7 ist noch nicht installiert.
Wo ist hier nun das Problem, wirklich immer noch Permission Probleme und der Befehl sudo chown -R nginx:nginx /var/www/example.com/html hat nichts gebracht?
Wie könnte man es fixen?
Danke
ich gebe kurz an wie ich alles gemacht habe und was als Fehler raus kommt
ich habe einen Server auf dem ich Centos 7 installiert habe. Auf den wiederum habe ich nginx 1.10 installiert. Ich habe einen neuen User 'gamba' erstellt und dem root privilegien gegeben und habe daraufhin den root user Anmeldung verboten. Anschließen habe ich eine neue Ordner Struktur erstellt um mehrere Domains zu benutzen und das wie folgt als eingeloggter 'gamba':
sudo mkdir -p /var/www/example.com/html
sudo chown -R nginx:nginx /var/www/example.com/html
sudo chmod -R 755 /var/www
sudo vi /var/www/example.com/html/index.html (einfach Hallo eingefügt)
sudo chown -R nginx:nginx /var/www/example.com/html
sudo chmod -R 755 /var/www
sudo vi /var/www/example.com/html/index.html (einfach Hallo eingefügt)
Daraufhin noch
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
sudo mkdir /etc/nginx/sites-enabled
und in die /etc/nginx/nginx.conf folgendes eingefügt
include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;
server_names_hash_bucket_size 64;
Nun muss ich ja einen neuen Server Block erstellen und habe den default genommen und kopiert
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/example.com.conf
und den Inhalt natürlich auf meine wert geändert wie zum Beispiel den:
server_name example.com www.example.com;
undroot /var/www/example.com/html;
Dann der Server block jetzt aktiv ist muss noch
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
ausgführt werden und nginx neugestartet werden soweit so gut.
Leider spuckt mir nginx folgenden fehler aus wenn ich cat /var/log/nginx/error.log ausführe
2016/07/18 22:11:47 [error] 32598#32598: *7 "/var/www/example.com/html/index.html" is forbidden (13: Permission denied), client: XX.XXX.XXX.XXX, server: example.com, request: "GET / HTTP/1.1", host: "example.com"
und mit dem Browser aufgerufen 403 Error
jetzt habe ich gelesen, dass nginx auf alle Eltern-Verzeichnisse eine Erlaubnis braucht . Auch wenn ich den Befehl sudo chown -R nginx:nginx auf alle Eltern ausführe ist immer noch das es Forbidden ist.
Als Notiz, PHP 7 ist noch nicht installiert.
Frage
Wo ist hier nun das Problem, wirklich immer noch Permission Probleme und der Befehl sudo chown -R nginx:nginx /var/www/example.com/html hat nichts gebracht?
Wie könnte man es fixen?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 310237
Url: https://administrator.de/contentid/310237
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
30 Kommentare
Neuester Kommentar
Hi,
wie sehen denn die Zugriffsrechte für /var/www aus (ls -l /var)? Hast du chroot auf /var/www/example.com/ oder auf /var/www angewendet?
Edit: Eigentlich hat das Verzeichnis drwxr-xr-x. root root www/ das sollte eigentlich reichen... Andere Frage, liegt im /var/www/example.com/html überhaupt eine index-Datei also index.php oder index.html?
wie sehen denn die Zugriffsrechte für /var/www aus (ls -l /var)? Hast du chroot auf /var/www/example.com/ oder auf /var/www angewendet?
Edit: Eigentlich hat das Verzeichnis drwxr-xr-x. root root www/ das sollte eigentlich reichen... Andere Frage, liegt im /var/www/example.com/html überhaupt eine index-Datei also index.php oder index.html?
Hab gerade gesehen, index.html schein vorhanden zu sein. Kann es sein, dass du nach dem anlegen der index.html die Rechte nicht nochmal angepasst hast? Wie sehen denn die Rechte für die index-Datei aus? Eventuell reicht es schon, einfach nochmal
auszuführen.
Edit: Ja ich denke hier ist der Fehler:
sudo chown -R nginx:nginx /var/www/example.com/html
sudo chmod -R 755 /var/www
Edit: Ja ich denke hier ist der Fehler:
sudo mkdir -p /var/www/example.com/html
sudo chown -R nginx:nginx /var/www/example.com/html
sudo chmod -R 755 /var/www
sudo vi /var/www/example.com/html/index.html (einfach Hallo eingefügt)
Die Reihenfolge ist nicht korrekt. Du legst die index Datei mit sudo und damit als root-Benutzer an. nginx hat dadurch keinen Zugriff auf die Datei. Einfach nochmal mit chown den Besitzer ändern.sudo chown -R nginx:nginx /var/www/example.com/html
sudo chmod -R 755 /var/www
sudo vi /var/www/example.com/html/index.html (einfach Hallo eingefügt)
Sieht erstmal okay aus. Ich würde an deiner Stelle zum Test nochmal folgendes tun:
Bitte benutze zum Test beim chown mal /var/www, damit werden das Verzeichnis www sowie alle Tochterverzeichnisse und Dateien angepasst.
sudo chown -R nginx:nginx /var/www/
sudo chmod -R 755 /var/www
systemctl restart nginx
Bitte benutze zum Test beim chown mal /var/www, damit werden das Verzeichnis www sowie alle Tochterverzeichnisse und Dateien angepasst.
Zitat von @vGaven:
cat /var/log/nginx/error.log
sestatus
hmm?
cat /var/log/nginx/error.log
7266#7266: *3 directory index of "/var/www/example.com/html/" is forbidden, client: XX.XXX.XXX.XXX, server: example.com, request: "GET / HTTP/1.1", host: "example.com"
sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
hmm?
Was meinst du mit .html klappt und html nicht? Oder meinst du das html Datein funktionieren aber php Dateien nicht?
Es klappt zwar bei .html files aber bei html nicht ich schaue gleich bei der domain nginx .conf Datei nach und poste es hier
Tja, jetzt wirds schwierig weil ich natürlich nicht weiß was du wie gemacht hast.
Schau dir doch mal diese Doku an, da ist alles sehr gut beschrieben. Wichtig ist, dass alle Pakete (insbesondere php-fpm) installiert sind, das /etc/php-fpm.d/www.conf sowie nginx korrekt konfiguriert wurde und der Dienst sollte laufen (systemctl status php-fpm).
Schau dir doch mal diese Doku an, da ist alles sehr gut beschrieben. Wichtig ist, dass alle Pakete (insbesondere php-fpm) installiert sind, das /etc/php-fpm.d/www.conf sowie nginx korrekt konfiguriert wurde und der Dienst sollte laufen (systemctl status php-fpm).
Also wenn du in der /etc/php-php.d/www.conf
gesetzt hast, kann es nicht sein, dass der Prozess mit dem Benutzer gamba läuft. Kannst du das bitte nochmal mit dem Befehl top verifizieren? top zeit dir alle laufenden Prozesse an, du kannst durch die Liste mit den Pfeiltasten navigieren, schau da bitte nochmal nach dem Benutzer.
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx