Ich habe Apache2 auf Mac OS X 10.7.4 installiert überMacports
Seit kurzem kann ich nicht mehr auf mein Localhost-Verzeichnis zugreifen. Ich erhalte eine 404-Antwort, kann aber auf 127.0.0.1 zugreifen.
Ich habe versucht, Apache neu zu starten:
sudo /opt/local/apache2/bin/apachectl stop
sudo /opt/local/apache2/bin/apachectl start
und ich erhalte die folgenden Fehler:
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address [::]:443
Ich habe überprüft, dass die Webfreigabe deaktiviert ist. Es scheint, als würde Apache diese Punkte bereits verwenden oder der Dienst wird nicht ordnungsgemäß beendet.
Wie kann ich herausfinden, was die Ports verwendet?
Antwort1
Der Shell-Befehl "lsof" kann Ihnen genau sagen, welcher Prozess welche Dateien und Socket-Adressen im System verwendet. Probieren Sie einfach einen
sudo lsof
oder, da die Ausgabe viel besser sein wird
sudo lsof | less
und suchen Sie nach etwas auf den HTTP-Ports. Wie üblich
man lsof
erhalten Sie weitere Informationen zum Anpassen der Ausgabe.
Antwort2
Zur Referenz: In Mountain Lion 10.8.2 hat es funktioniert, indem man einfach den Apache2-Dienst gestoppt hat:
sudo apachectl stop
Auf diese Weise werden die httpd-Prozesse nicht neu gestartet und der Macports Apache2-Server wird danach einwandfrei gestartet.
Antwort3
Auf meinem Mac mit Mojave (10.14.1) konnte Apache plötzlich kein IPv4 mehr bedienen und gab mir dann ERROR 403. Ich habe versucht, alle Apache ( sudo killall httpd
) zu beenden... und die PIDs mit
sudo lsof | grep AMP | grep apache
hat nicht einmal funktioniert... nur IPv6 war verfügbar... immer noch FEHLER 403
Was bei mir funktioniert: Deaktivieren Sie den integrierten Apache-Server von macOS.
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
danach:
sudo apachectl -k restart
sei glücklich :)