Nginx

以使用者身份從使用者目錄執行 NGINX 的權限錯誤

  • September 28, 2016

執行: CentOS 7、NGINX 1.10.0

以“user {username};”身份執行 NGINX 時收到權限錯誤 具有以下文件夾結構和分配的權限:

/home/{使用者名}

drwxr-xr-x. 4 {username} {username}  88 Sep 28 04:21 .
drwxr-xr-x. 4 {username} {username}  30 Sep 28 04:21 example.com

/home/{username}/example.com

drwxr-xr-x. 2 {username} {username}  6 Sep 28 07:15 logs --currently empty
drwxr-xr-x. 2 {username} {username}  6 Sep 28 04:21 public --currently empty

須藤 nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

sudo systemctl status nginx

nginx.service - The nginx HTTP and reverse proxy server
 Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
 Active: failed (Result: exit-code) since Wed 2016-09-28 07:16:15 UTC; 17min ago
Process: 1520 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
Process: 1519 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)

Starting The nginx HTTP and reverse proxy server...
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/home/{username}/example.com/logs/access.log" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
nginx.service: control process exited, code=exited status=1
Failed to start The nginx HTTP and reverse proxy server.
Unit nginx.service entered failed state.
nginx.service failed.
# install semanage if you don't already have it:
yum install policycoreutils-python

# check if SELinux is running:
sestatus

# check output for:     Current mode: enforcing.



# give your content and logs directory a new default context.
semanage fcontext -a -t httpd_sys_rw_content_t "/home/{username}/public(/.*)?"
semanage fcontext -a -t httpd_log_t "/home/{username}/logs(/.*)?"

# apply the default context to the directory
restorecon -R /home/{username}

引用自:https://serverfault.com/questions/805799