CentOS 7 Nginx 错误集合

1、$ env: /etc/init.d/nginx: 没有那个文件或目录

这个问题刚开始困惑了我很久,明明文件是存在的啊,脚本也没什么错啊,怎么就是说文件找不到,后面在网看到说是因为文件格式为doc,Linux不能识别,所以,我的做法是:把文件内容复制出来,然后把之前的/etc/init.d/nginx删除,用 vi /etc/init.d/nginx再建一个,再把内容复制进去,我是这么解决了。在网上又看到一个理简便的方法:可以通过vim打开该文件,如果可以看到出现 ^M 的字符,就可以确定是DOS格式的了。那么可以在vim中执行命令 :%s/\r\+$//e ,将其转换成Unix格式即可。 第二种方法没试过,不知道能不能行,我相信应该是可以的。

2、Starting nginx (via systemctl): Warning: Unit file of nginx.service changed on disk, 'systemctl daemon-reload' recommended

这是一个警告,这个是在我修改/etc/init.d/nginx文件之后出现的,这个问题,直接按它提示的操作:$ systemctl daemon-reload 就可以了。

3、Starting nginx (via systemctl): Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.

出现这样的提示,一般先执行 $ systemctl status nginx.service 看看下面的具体情况,比如:

[root@Leco init.d]# systemctl status nginx.service
nginx.service - LSB: start and stop nginx
   Loaded: loaded (/etc/rc.d/init.d/nginx)
   Active: failed (Result: resources) since 三 2015-06-24 20:21:31 CST; 5min ago
  Process: 18620 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)

6月 24 20:21:31 Leco.lan systemd[1]: Starting LSB: start and stop nginx...
6月 24 20:21:31 Leco.lan nginx[18620]: Starting nginx: nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
6月 24 20:21:31 Leco.lan nginx[18620]: [  确定  ]
6月 24 20:21:31 Leco.lan systemd[1]: PID file /var/run/nginx/nginx.pid not readable (yet?) after start.
6月 24 20:21:31 Leco.lan systemd[1]: Failed to start LSB: start and stop nginx.
6月 24 20:21:31 Leco.lan systemd[1]: Unit nginx.service entered failed state.

其实看到这个systemctl这个东西出来了,就可以使用新RHEL 7的启动服务方式了,给个传送门供大家参考下这个方式:http://my.oschina.net/liucao/blog/470458

这种都属于常见的,$ sudo mkdir -p /var/cache/nginx/client 就可以了,类似的问题都是这样做,但是像/var/run/nginx/nginx.pid这样的进程文件好像不能这样做吧。

这个一看就是权限问题,切换 $ sudo 或 $ su。大家主要还是要耐心的把错误日志看完整,不要一出问题就去Google,以前我也有那样的臭毛病,很简单的问题,大家也不会去在网上发,结果找半天也没有网上找到答案,结果回头仔细看看日志,又找到了毛病。