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.


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


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.