我删除了/var/log/nginx/error.log文件,然后使用以下命令创建一个新文件:
sudo nano error.log
这样做ls -la
表明错误日志和访问日志具有相同的权限。
当我尝试启动 nginx 时出现错误:
警报:无法打开错误日志文件:open()“/var/log/nginx/error.log”权限未得到批准。
更新
当尝试启动 nginx 时,我还看到:
紧急:/var/run/nginx.pid 失败 13:权限被拒绝。
答案1
这并不能解决你的问题,但是将来如果你这样做
cat /dev/null > /file/你/想要/删除
您将复制文件的内容(不包含任何内容),并且保留所有权限。
并非特定于 nginx,但另外,请确保您以应运行该应用程序的用户身份运行它。如果您曾以 root 身份运行它,则所有权限都将归 root 所有,因此其他用户将无法运行它。
答案2
使用 NginX 轮换日志的常用方法是重命名文件,然后/etc/init.d/nginx reload
。服务器将启动一个新文件,您可以对旧文件执行您想做的事情。
您可能还会发现编辑配置以减少记录太多内容很有用......
答案3
查看 nginx 配置,检查服务器以谁的身份运行 - 猜测用户是 nginx
所以 :
chown nginx: /var/run/nginx.pid
chown -R nginx: /var/log/nginx
应该可以奏效。
答案4
删除error.log文件,nginx会自行创建该文件。