在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,找到这么一个文章
在ubuntu12.04中安装配置LNMP时 出现在php5-fpm的错误 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 nginx中是这样配置的 location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } 我个人的配置是想用sock的方法 毕竟sock方式对于高并发来说 还是比使用cgi方式好的 问题其实出现在 fastcgi_pass得配置上面。在ubuntu 12.10安装了php5-fpm之后。我们可以去 /etc/php5/fpm/pool.d/www.conf 里面找到这样一段代码: listen = 127.0.0.1:9000 在这上面代码的下面添加一行: listen = /var/run/php5-fpm.sock 保存后启动php5-fpm /etc/init.d/php5-fpm restart 这时就可以正常访问了
所以猜测,其实是由于nginx的配置和php-cgi监听设置不一样造成的,当然自己还是很多不懂,学习之路,无穷尽啊