OSX, 0.0.0.0:80 konnte nicht abgehört werden (Grund: Berechtigung verweigert)

4

Ich bin bei OSX Mavericks. Ich habe PHP 5.5 von http://php-osx.liip.ch/ installiert . Wenn ich in einem Browser zu localhost gehe, wird die Seite "It Works!" Das ist keine Seite, die ich erstellt habe, daher bin ich nicht sicher, wo sie sich befindet. Ist dies von der PHP-Installation oder nur Apache?

Wenn ich meine IDE (PHPStorm) öffne und die Website starte, funktioniert dies, wenn ich einen Port wie 8080 verwende. Wenn ich den Port auf 80 setze, schlägt dies fehl und die IDE sagt:

/usr/local/php5/bin/php -S 0.0.0.0:80 -t /mywebsitepath/ 

Failed to listen on 0.0.0.0:80 (reason: Permission denied)

Als ich nach diesem bestimmten Fehler gesucht habe, habe ich nur Hilfe für NGINX gefunden , aber ich verwende Apache. Was muss ich ändern, um meinen Code lokal auf Port 80 ausführen zu können?

Ich möchte dies tun, damit ich localhost anstelle von localhost verwenden kann: 8080.

Justin
quelle
3
Da Sie eine Seite von localhost erhalten , bedeutet dies, dass bereits eine Software auf Ihrem Computer Port 80 verwendet. Zwei Programme können nicht gleichzeitig denselben Port verwenden.
Ben Voigt
Wie kann ich sehen, was gerade verwendet wird? Ich schätze, das passiert beim Start.
Justin
Informationen hierzu finden Sie unter Wer überwacht einen bestimmten TCP-Port unter Mac OS X?
Ben Voigt
Wenn ich es tue, sudo lsof -i TCP:80 | grep LISTENerhalte ich keine Ergebnisse.
Justin
Sie haben die Portnummer-> Namenssuche nicht deaktiviert, daher wird sie möglicherweise ausgegeben TCP:http(ich kenne den Mac nicht lsof, aber netstatunter anderen Betriebssystemen). Überprüfen Sie die Ausgabe von nur um sudo lsof -i TCPzu sehen, in welchem ​​Format es ist.
Ben Voigt

Antworten:

14

Ports unter 1024 sind privilegiert und können nur von root verwendet werden. Da Sie Ihre IDE nicht als Root ausführen können, würde ich einen Nginx-Proxy einrichten, der von Port 80 auf Port 8080 wechselt. Sollte dies einfach sein, gibt es viele Tutorials = D

Yarek T
quelle
Oder ein Apache-Proxy, wenn Sie damit besser vertraut sind. Nginx rockt allerdings. Ach ja , und da Sie OSX Apache auf Port 80 laufen haben, werden Sie es stoppen (oder verwenden Sie es als Proxy)
Yarek T
Wahrscheinlich könnte er seine IDE als root ausführen. '' Sudo open / Applications / PHPStorm '' - obwohl ich nicht sicher bin, ob diese IDE Workspaces so verwendet, dass er sie auf das Projekt verweisen kann. Auf einem Port über 1024 zu laufen, scheint ein bisschen weniger aufwendig zu sein als ein Nginx-Reverse-Proxy, obwohl sie relativ einfach einzurichten sind.
James T Snell
Wenn der Apache von OSX auf Port 80 ausgeführt wird und ich ihn in meiner IDE nicht verwenden kann, kann er dann ausgeführt werden? Wäre es sinnvoll, es auszuschalten? Ist das möglich?
Justin
@Justin Wenn Sie nicht bereits in der Entwicklung etwas haben, das speziell für Port 80 erforderlich ist, würde ich nur Port 8080 verwenden. Es verursacht die geringste Menge an Kopfschmerzen / Arbeit und Sicherheitslücken.
Darth Android
Vielen Dank. Obwohl ich Apache stoppen konnte, sodass die localhost-Adresse freigeschaltet wurde (keine "Es funktioniert!" - Seite mehr), konnte ich meine IDE immer noch nicht auf Port 80 ausführen, aus dem Grund, den Sie in Ihrer Antwort beschrieben haben. Ich werde mich nur mit der hässlichen URL für dev befassen.
Justin