在ubuntu13.04上使用apt方式安装nginx发现无法启动nginx,也不报错

查看nginx运行状态,显示未启动

搜索无果,想起了原来的遇到的一个问题,那时候是安装了nginx和lighthttpd服务器,导致nginx无法启动的情况,提示端口被占用,于是拆卸lighthttpd,启动nginx正常,但是访问localhost提示无法访问,排查获知是在nginx中的配置文件是有这么一句:

listen [::]:80 default_server ipv6_only=on;

使用了ipv6的地址,把这句注释掉,可以访问。

 

试了一下,无法启动的问题解决了。

 

相关资料可以参考ubuntu中文官方:

http://wiki.ubuntu.org.cn/Nginx

 

另,遇到nginx重启成功,php-fpm重启成功,html可以访问,php502错误的问题,sudo netstat -anpo | grep "php-cgi" | wc -l显示0 ps -aux | grep 9000显示空
最后解决办法是,考虑,既然html可以访问,说明nginx是可以访问的,php文件没有下载说明nginx配置也是没问题的,于是考虑是php-fpm问题,查看sudo gedit /etc/php5/fpm/php-fpm.conf发现最后有这么一句include=/etc/php5/fpm/pool.d/*.conf于是查看对应配置ls /etc/php5/fpm/pool.d/只有一个www.conf就是它了,打开发现里面有这么一句listen = /var/run/php5-fpm.sock,将这句注释掉添加listen = 127.0.0.1 9000保存重启nginx php-fpm访问php就可以了。

刚刚又查了一下listen = /var/run/php5-fpm.sock,找到这么一个文章

View Code

 1 在ubuntu12.04中安装配置LNMP时 出现在php5-fpm的错误
 2 
 3 2013/04/26 04:01:05 [crit] 6119#0: *4 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 159.53.110.141, server: 216.238.88.42, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "216.238.88.42:9090
 4 
 5 nginx中是这样配置的
 6 
 7        location ~ \.php$ {
 8                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 9         #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
10         #
11         #       # With php5-cgi alone:
12         #       fastcgi_pass 127.0.0.1:9000;
13         #       # With php5-fpm:
14                 fastcgi_pass unix:/var/run/php5-fpm.sock;
15                 fastcgi_index index.php;
16                 include fastcgi_params;
17         }
18 
19 我个人的配置是想用sock的方法 毕竟sock方式对于高并发来说 还是比使用cgi方式好的
20 
21 问题其实出现在 fastcgi_pass得配置上面。在ubuntu 12.10安装了php5-fpm之后。我们可以去
22 
23 /etc/php5/fpm/pool.d/www.conf
24 
25 里面找到这样一段代码:
26 
27 listen = 127.0.0.1:9000 
28 
29 在这上面代码的下面添加一行:
30 
31 listen = /var/run/php5-fpm.sock
32 
33 保存后启动php5-fpm
34 
35 /etc/init.d/php5-fpm restart
36 
37 这时就可以正常访问了

所以猜测,其实是由于nginx的配置和php-cgi监听设置不一样造成的,当然自己还是很多不懂,学习之路,无穷尽啊