Home >Backend Development >PHP Tutorial >centos7 nginx 配置日志,提示 No such file or directory

centos7 nginx 配置日志,提示 No such file or directory

WBOY
WBOYOriginal
2016-06-06 20:39:583500browse

centos7+nginx1.6.2,配置目录/home/mysite绑定了100个网站(网站程序一样,链接数据库不一样)
然后他们的日志配置是

<code>access_log /home/mysite/logs/$host/access.log main;
</code>

重新启动nginx,访问网站,访问日志没有生成,nginx错误日志中提示:

<code>2014/12/22 23:56:11 [crit] 14021#0: *1 open() "/home/mysite/logs/xxxxA.com/access.log" failed (2: No such file or directory) while logging request, client$
</code>

修改nginx.conf

<code>access_log /home/mysite/logs/$host.access.log main;
</code>

重启nginx再访问网站,错误日志:

<code>2014/12/23 00:00:34 [crit] 14021#0: *6 open() "/home/mysite/logs/xxxxA.com.access.log" failed (13: Permission denied) while logging request, client: 113.$
</code>

目录 ll /home/mysite

<code>[root@flxx nginx]# ll /home/mysite
total 12
drwxr-xr-x 2 mysite root 4096 Dec 22 23:04 bak
drwxr-xr-x 2 mysite root 4096 Dec 22 23:04 logs
drwxr-xr-x 2 mysite root 4096 Dec 22 23:37 www
</code>

如何解决

<code>1)nginx 不同域名自动生成目录问题
2)nginx 日志写入权限问题
</code>

回复内容:

centos7+nginx1.6.2,配置目录/home/mysite绑定了100个网站(网站程序一样,链接数据库不一样)
然后他们的日志配置是

<code>access_log /home/mysite/logs/$host/access.log main;
</code>

重新启动nginx,访问网站,访问日志没有生成,nginx错误日志中提示:

<code>2014/12/22 23:56:11 [crit] 14021#0: *1 open() "/home/mysite/logs/xxxxA.com/access.log" failed (2: No such file or directory) while logging request, client$
</code>

修改nginx.conf

<code>access_log /home/mysite/logs/$host.access.log main;
</code>

重启nginx再访问网站,错误日志:

<code>2014/12/23 00:00:34 [crit] 14021#0: *6 open() "/home/mysite/logs/xxxxA.com.access.log" failed (13: Permission denied) while logging request, client: 113.$
</code>

目录 ll /home/mysite

<code>[root@flxx nginx]# ll /home/mysite
total 12
drwxr-xr-x 2 mysite root 4096 Dec 22 23:04 bak
drwxr-xr-x 2 mysite root 4096 Dec 22 23:04 logs
drwxr-xr-x 2 mysite root 4096 Dec 22 23:37 www
</code>

如何解决

<code>1)nginx 不同域名自动生成目录问题
2)nginx 日志写入权限问题
</code>

不同的域名生成目录可以这样,在启动或重读 Nginx 配置的时候,cd 到 www 目录,然后执行以下命令,就可以在logs目录下创建相应的域名目录了。

find . -type d -maxdepth 1 -exec mkdir -p ../logs/{} \;

日志写入权限的问题呢,解决方法就很多了:

  • 方法一、由于是日志目录,不必要做过多的权限,直接把该目录设置成 777 权限即可。
  • 方法二、或者把该目录的所有者和所属组改成与 Nginx 中的 user 对所应

这中间有坑,使用时注意咯!

如果你在创建这些日志目录的时候是使用的 root 用户,那创建完相应的目录先万别忘记改权限。

目录权限的问题,你的logs目录是除了root用户意外都不能写,所以会Permission denied,chown成Nginx的用户或者最简单权限改成777

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn