ubuntu 14.04 service nginx restart 出現 Fail 狀況

service nginx restart  執行 Fail 
今天在本來是一台 apache server 上的 Laravel,想要多架個 nginx,結果在 sudo service nginx restart 時一直出現 Fail:


(因為之前有耳聞如果 nginx 的設定檔沒有寫好,好像也會 fail,所以還有特地檢查我的 nginx 設定檔的寫法... Orz)



確認 Fail 狀況
上網一查,發現可以先用 ngixn -t 來檢驗是哪裡出了問題,首先 nginx -t 需要 sudo 權限,第一次我下 nginx -t 時忘記了,所以出現了 permission error。總之是 sudo nginx -t,比較不會出問題。


使用 nginx -t 看起來狀況也挺好了... 不知道問題出在哪....。

(補充: 真正有問題的情況下,他會跟你說 nginx: configuration file /etc/nginx/nginx.conf test failed 類似這樣的訊息)

又繼續找文章找方法往下追,後來改是 sudo nginx,終於抓到問題了


就這個狀況看起來,應該是有人占用了 80 Port,但我怎麼檢查都不覺得我的 apache 有佔用到 80 port(已經把原本的 80 port 改用到 8080 port 了)。

一個方法是先把 nginx stop 再 start,這是比較標準的流程。
*sudo service nginx stop
*sudo service nginx start
 
另一個開大絕的方法是... 只好看誰把 80 port 佔走,先把他砍了(sudo fuser -k 80/tcp),然後再重啟 nginx。



補充:
* Laravel 在 apache, nginx 上的設定檔可以參考 daylerees/laravel-website-configs
* 監看哪些檔案是否有先繞到 nginx  可以 $ tail -f /var/log/nginx/access.log (看你的 access.log 在哪裡)
*如果你要額外把 Nginx 的 access.log  跟 error.log 額外寫出來的話,把路徑設定寫出來就好:
access_log /var/log/nginx/localhost.laravel-access.log;
error_log  /var/log/nginx/locahost.laravel-error.log error;
*網頁測試的時候,上傳圖片時如果出現 nginx 的 413  Request Entity Too Large Error 的話,要修改 /etc/nginx/nginx.conf 的設定,自己在 http 的設定裡多加上 client_mac_body_size 2M; 然後執行 sudo service nginx reload,重新載入設定。參考: Nginx: 413 Request Entity Too Large Error and Solution by NIXCRAFT on JULY 12, 2011 · 18 COMMENTS· LAST UPDATED FEBRUARY 18, 2014

留言

這個網誌中的熱門文章

[Android] 筆記 手機上測試自己的 APP

解決fatal: Not a git repository (or any of the parent directories): .git錯誤

[Android 筆記] 設定 ImageView 的圖檔來源