
Aus irgendeinem Grund kann ich den Root nicht ändern. Ich habe die gleichen Rechte wie der Standard-Root auf /usr/share/nginx/html
und habe auch 755
rekursiven Zugriff auf alle Dateien und Ordner in meinem anderen Ordner. Ich habe sogar versucht, den Benutzer und die Gruppe hin und her zu rooten und nginx zu ändern, um zu sehen, ob es einen Unterschied macht, aber es macht keinen. Ich bekomme immer403 Verboten
also im Grunde habe ich diesen Ordner
$ mkdir -p /srv/www/test.com/public_html
$ vi /srv/www/test.com/public_html/index.html
$ vi /srv/www/test.com/public_html/test.php
$ chmod -R 755 /srv/www/test.com/public_html
habe versucht, den Benutzer und die Gruppe auf nginx zu ändern
$ chown -R nginx:nginx /srv/www
konfiguriert die Haupt-Conf-Datei
$ vi /etc/nginx/nginx.conf
so sieht meine Konfiguration aus, die Includes sind auskommentiert
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
index index.php index.html index.htm;
server {
listen 80;
server_name _;
root /srv/www/test.com/public_html;
# root /usr/share/nginx/html;
location / {
autoindex on;
}
error_page 404 /404.html;
location = /40x.html { }
error_page 500 502 503 504 /50x.html;
location = /50x.html { }
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
alles funktioniert im auskommentierten Standardstammordner, aber wenn ich den Stammordner ändere, bekomme ich 403 Forbidden. Ich habe das Gefühl, ich habe alles versucht, was ich konnte, Benutzer und Dateiberechtigungen geändert und so weiter. Das php-fpm hat nginx als Benutzer und Gruppe. und der Benutzer ist in der Datei main.conf auf nginx eingestellt. Ich verwende nur diese eine Datei für die Konfiguration von nginx und habe die Includes auskommentiert.
Ich habe keine Ahnung, was ich tun soll. Ich stecke jetzt schon seit Stunden fest. Für jede Hilfe wäre ich sehr dankbar.
Antwort1
Der Klarheit halber veröffentliche ich meinen Kommentar als Antwort, dies wurde durch SELinux verursacht und das Setzen des Richtlinienmodus auf permissiv semanage permissive -a httpd_t
ist ein "schnell und dreckig" Lösung.
Die saubere Lösung wäre, den SELinux-Kontext festzulegen chcon -Rt httpd_sys_content_t /srv/www/test.com
und nach potenziellen neuen SELinux-Beschwerden zu suchen, falls welche vorhanden sind (hängt davon ab, was Sie als Nächstes in Ihrer Konfigurationsdatei festlegen).