Nginx不开始使用systemctl

我已经为它的目录中的虚拟服务器定义了一个自定义的error_log,如下所示:

server { listen 80; server_name www.example.com; root /home/www.example.com; error_log /home/www.example.com/error.log; } 

这是我的nginx.conf:

 user nginx; pid /run/nginx.pid; worker_processes 1; 

Nginx以root身份启动,没有任何问题:

 nginx -t nginx 

但是当我尝试使用systemctl启动它时,它不会启动,状态显示如下:

 nginx: [emerg] open() "/home/www.example.com/error.log" failed (13: Permission denied) 

这是我的nginx.service:

 [Unit] Description=The nginx HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target 

我几乎已经尝试了将web目录的user:group改为nginx:nginx。 即使我删除error_log它开始使用systemctl,但它不能访问Web目录,虽然它在同一用户下运行。

我无法弄清楚为什么nginx在用systemctl启动时不能访问那个目录,而直接启动的时候nginx有访问权限。

我在7号。

SELinux可能不允许nginx访问/ home目录。 尝试将根目录更改为/ var / www作为testing。 另外,当你启动nginx运行journalctl -x在不同的会话中看到错误信息并发布在这里。

也许原因是SELinux。尝试编辑/ etc / sysconfig / selinux
//#SELINUX =执行
SELINUX =禁用
通过重新启动使configuration立即生效