在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監聽設置不一樣造成的,當然自己還是很多不懂,學習之路,無窮盡啊