由于某种原因,不能在nginx上更改root

出于某种原因,我无法更改根目录。 我有和/usr/share/nginx/html的默认根一样的权限,而且我的另一个文件夹中的所有文件和文件夹也都有recursion。 我甚至尝试将用户和组更改为root和nginx来查看它是否有所作为,但是没有。 我一直得到403禁止

所以基本上我做了这个文件夹

 $ 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 

试图将用户和组更改为nginx

 $ chown -R nginx:nginx /srv/www 

configuration主要的conf文件

 $ vi /etc/nginx/nginx.conf 

这是我的configuration看起来像,包括被注释掉

 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; } } } 

一切工作在默认的根文件夹被注释掉,但是当我改变根时,我得到了403禁止。 我觉得我已经尽我所能,改变用户和文件权限等等。 php-fpm有nginx作为用户和组。 并且用户在main.conf文件中被设置为nginx。 我只用这个文件来configurationnginx,并且把include包含注释掉了。

我不知道该怎么做。 现在已经坚持了几个小时。 任何帮助将不胜感激

为了清楚起见,我发布了我的评论作为答案,这是由于SELinux和设置策略模式semanage permissive -a httpd_t是一个“ 快速和肮脏 ”的解决scheme。

干净的解决scheme是设置SELinux上下文chcon -Rt httpd_sys_content_t /srv/www/test.com ,如果有的话(取决于你在configuration文件中设置的内容)寻找潜在的新的SELinux投诉。