在刪除了 Debian 標準套件提供的 0.7.x 版本後,我透過原始程式碼安裝了 nginx 1.4.1 版本。
可以啟動 nginx,service nginx start
當我執行 netstat 時,我看到 nginx 正在保留連接埠 80。
netstat -apn | grep nginx
輸出:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3115/nginx
問題是,當我這樣做service nginx status
或service nginx stop
收到此訊息時:
無法存取 nginx 的 PID 檔案...失敗!
我可以找誰來解決這個問題?我該如何防止這個問題?
編輯:解決方案
remove nginx
- 然後去源頭
./configure --pid-path=/var/run/nginx.pid
make
checkinstall make install
答案1
Debian 可能為其軟體包配置/修補了 nginx,以將 pid 檔案放在預設情況下不執行的特定位置。當您透過從原始程式碼編譯的內容替換它時,它與服務基礎架構的期望不符。
我會查看 debian 人員完成了哪些補丁和配置選項,並使用將 pid 檔案放在相同位置的選項重新編譯您的 1.4.x 版本。
至於如何預防此類問題的發生呢?要么透過套件做事,要么從原始碼編譯,但不能兩者兼而有之。或者請注意,這樣做時需要格外小心,因為事情可能會損壞。