我最近从 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 相同的用户身份运行以获得正确的结果。