nginx错误日志很大,因此我删除并创建了一个新日志,现在nginx无法启动


11

我删除了/var/log/nginx/error.log文件,然后使用以下命令创建了一个新文件:

sudo nano error.log

这样做ls -la表明error.logaccess.log具有相同的权限。

当我尝试启动nginx时出现错误:

警报:无法打开错误日志文件:open()“ /var/log/nginx/error.log”失败的权限被取消。

更新资料

当尝试启动nginx时,我还看到:

emerg:/var/run/nginx.pid失败13:权限被拒绝。

Answers:


25

这不能解决您的问题,但将来,如果您这样做

cat / dev / null> / file / you / want / to / wipe-out

您将复制文件内容而不进行任何操作,并保持所有权限不变。

不是特定于nginx,而是另外,请确保您以应以其身份运行的用户身份运行该应用程序。如果您曾经以root用户身份运行过,则所有权限将归root用户所有,因此其他用户将无法运行它。


与使用有什么不同echo "" > /file/to/empty?他们都一样吗?
Gowtham Gopalakrishnan

那应该是一样的。此外,您可以在开始时就忽略所有内容,然后直接去做> /file/to/empty
Alex

5

使用NginX旋转日志的通常方法是重命名文件,然后重命名/etc/init.d/nginx reload。服务器将启动一个新文件,您可以使用旧文件来完成您想做的事情。

您可能还会发现编辑配置以免记录过多日志很有用...。


2

看一下nginx的配置,检查谁在运行服务器-猜测用户将是nginx

所以:

chown nginx: /var/run/nginx.pid chown -R nginx: /var/log/nginx

应该做到的。


但是为什么以前可以呢?
Blankman 2010年

1
我怀疑是因为您尝试以root身份运行它,然后尝试使用其init脚本启动它。
Geraint Jones

好,我总是开始会这样,嗯....
Blankman

nginx.conf说:“用户www-data”
Blankman 2010年

1

删除error.log文件,nginx将自己创建它。


我删除了它,然后当我尝试启动nginx时,给了我相同的权限,文件/var/log/nginx/error.log上出现了拒绝权限错误
Blankman 2010年

删除日志并重新启动Nginx。它将自动创建日志。
WhiteHorse '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.