跑步:CentOS 7,NGINX 1.10.0
当我以“用户 {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/{用户名}/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
sudo 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 状态 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.
答案1
# 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}