nginx 用户权限

nginx 用户权限

我最近从 Apache2 切换到了 nginx。

我已经设置好一切,并且它sudo nginx -t显示一切正常。

但是当我这样做时,nginx -t我收到以下错误:

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2012/10/24 12:22:16 [warn] 23075#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
2012/10/24 12:22:16 [emerg] 23075#0: SSL_CTX_use_PrivateKey_file("/etc/ssl/private/myapp.key") failed (SSL: error:0200100D:system library:fopen:Permission denied error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib)

以下似乎也可以分别重新启动而没有任何错误:

sudo service nginx reload
sudo service nginx restart
sudo service php5-fpm restart

这是预料之中的吗?

答案1

nginx -t是的,如果您以非特权用户身份运行,这是意料之中的事。使用 运行命令时sudo(8),您将以 root 用户身份运行它们,并且您将有权打开日志文件,而您作为个人用户似乎没有这种权限。

nginx -t应以与启动 nginx 相同的用户身份运行以获得正确的结果。

相关内容