![](/img/trans.png)
[英]Nginx error on Rhel7 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
[英]Restarting nginx: nginxnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
當我嘗試使用sudo /etc/init.d/nginx restart重新啟動nginx時,我收到了來自主題的消息。
我發現原因很可能是腳本不知道如何停止守護程序,因為pid文件(/var/run/nginx.pid)不是在啟動時創建的。
我在兩個不同的服務器上安裝了兩個...一個是從源代碼編譯的,另一個是由phusion乘客編寫的。
我試過這個命令:
start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /usr/sbin/nginx -- -c /etc/nginx/nginx.conf
在兩台機器上和一台機器上創建了pid文件而在另一台機器上它不是 - 在那台機器上路徑有點不同(但我不認為這是相關的):
start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /opt/nginx/sbin/nginx -- -c /opt/nginx/conf/nginx.conf
流程開始,pid沒有寫...
我在Debian上...
有什么建議?
解決方案是在nginx.conf中取消注釋這一行:
pid /var/run/nginx.pid;
看起來不同的安裝方式不同,但正確的方法是取消注釋。
我能夠通過運行以下fuser命令來解決這個問題
$ sudo fuser -k 80 / tcp
這會殺死使用端口80的任何進程。但是他沒有搞任何其他東西。
這歸功於: https : //goo.gl/6oc0xD
$ sudo nginx -t
要查看所有進程,有時您沒有完全權限
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.