在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,找到这么一个文章
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监听设置不一样造成的,当然自己还是很多不懂,学习之路,无穷尽啊