Ubuntu 14.04 - sudo service nginx restart 執行出現 fail 問題

今天在 Ubuntu 14.04 安裝了 nginx,真沒想到執行時 sudo service nginx restart 直接顯示 fail 問題 (還沒開始就踩到坑了)。只能說 Google 是大神,能在苦惱之中找到正確的解決方法。

這個錯誤訊息也太少了,後來找到可以用 sudo nginx -t 測試配置文件的語法狀況。但是更令人驚呆的事,訊息也沒有重大錯誤,第一行寫 is ok 第二行 is successful。這….仍然沒解決到問題!!

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

既然語法正確,那麼就要往網站伺服器思考,試著思考 Ubuntu 預設都有 Apache 網站伺服器,預設都會是 80 Port,那麼 Nginx 既然都安裝了,那應該也是吧?

從這個 吧?疑問詞當中,就來確定一下 Nginx 的 Port 狀況,可以試著輸入 sudo nginx 後查看

嗯嗯嗯,看起來都是被 80 Port 佔用了。

1
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

接著我們查看一下到底有哪些佔用了 80 Port

1
$ sudo netstat -lpn |grep :80

把佔用的 80 Port 刪掉

1
2
$ sudo fuser -k 80/tcp
80/tcp: 7007 7008 7009 11052 25621 25622 25623 25624 32657 32658 32659

之後就啟用一下 nginx

1
2
3
4
$ sudo service nginx start
$ sudo service nginx restart
$ sudo service nginx status
* nginx is running

oh, nice. nginx 已經啟動了!