2013-11-01 10 views
20

Ich habe nginx für ein paar Monate ohne Probleme verwenden, aber auf Mac OS X 10.9 Mavericks nach dem Upgrade, wenn sie versuchen, nginx zu starten bekomme ich diese:nginx Anlauf scheitern auf Mac OS X 10.9 mavericks

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] still could not bind() 

Ich habe versucht, these directions zu folgen, aber ich habe nicht viel Glück, da meine Ausgaben ein wenig anders scheinen.

Die Ausgabe von:

ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)' 

ist:

PID PPID %CPU  VSZ WCHAN COMMAND 
15015 12765 0.0 2432784 -  egrep (nginx|PID) 

Ich habe versucht, den Prozess, dass PID unter Verwendung töten, aber es scheint nie zu sterben ... Irgendwelche Ideen auf, wie man Nginx läuft wieder? Jede Hilfe wird sehr geschätzt !!

+1

Versuch zu sehen, welcher Prozess zu 80 hört, vielleicht installiert u Apache oder so ähnlich –

+0

ich das gleiche Problem mit „bind haben() bis 0.0.0.0:80 ist fehlgeschlagen (13: Berechtigung verweigert) ". Es gibt mir keine Erlaubnis verweigert, wenn ich den Port zu 8000 ändern – Adi

+1

Mögliche andere Lösung für diesen Fehler, wenn (wie ich) Nginx startet gut für Sie, aber Ihr Protokoll immer noch Spam mit diesem Fehler erhalten: http: // Serverfault. com/a/548741/23206 –

Antwort

44

Ihr ps ... | egrep Befehl findet sich selbst, keine Instanz von nginx (siehe Spalte "COMMAND"). Da Port 80 verwendet wird, ist es wahrscheinlich, dass ein anderes Programm (vielleicht der Apache, der mit dem Betriebssystem geliefert wird) läuft und es ergreift. Um dies herauszufinden, führen:

sudo lsof -i:80 

Wenn es das System Apache („httpd“) Programm ist, können Sie es wahrscheinlich heruntergefahren mit:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 

Wenn das es nicht tut, weitere Infos wird benötigt, um herauszufinden, was Port 80 greift und wie es beginnt.

+1

Das reparierte es !!! Mann, danke. Ich habe seit Wochen gesucht. – gjunkie

+1

Arbeitet noch 4 Jahre später für diejenigen von euch Googlern. – mattelliottIT

1

Wahrscheinlich noch nginx runnig und lauscht auf Port 80 versuchen, diesen Befehl

sudo killall nginx 
Verwandte Themen