
Betriebssystem: macOS Mojave 10.14.6
HTTP-Server: Apache 2.4.55
Beim Versuch, den Apache-Server neu zu starten, erhalte ich die Meldung „Adresse wird bereits verwendet …“. Hm, also muss es einen Prozess geben, der diesen Port abhört, oder? Mit dieser Zeile (von woanders) im Terminal können Sie sehen, was los ist:
ps auxw | grep httpd
es gibt
_www 1317 0.0 0.1 4361716 7452 ?? S 12:39AM 0:00.10 /usr/sbin/httpd -D FOREGROUND
_www 1303 0.0 0.1 4361716 7364 ?? S 12:39AM 0:00.23 /usr/sbin/httpd -D FOREGROUND
root 104 0.0 0.1 4359628 5956 ?? Ss 12:20AM 0:01.07 /usr/sbin/httpd -D FOREGROUND
ausername 7671 0.0 0.0 4277256 804 s003 S+ 12:21PM 0:00.00 grep httpd
_www 7654 0.0 0.0 4359604 1004 ?? S 12:21PM 0:00.00 /usr/sbin/httpd -D FOREGROUND
Richtig, also versuche ich jetzt, es zu stoppen
httpd -k stop
was gibt
httpd (no pid file) not running
Ok, dann versuche ich es mit
/usr/sbin/httpd -k stop
httpd (pid 104?) not running
Hm... vielleicht:
apachectl -k stop
httpd (no pid file) not running
Was läuft also? Und wie starte ich es neu? Dies ist das erste Mal, dass ich mit dieser Art von Fehlern in Bezug auf Apache unter OSX zu tun habe.
Ich habe geprüftdieser Threadaber nichts hat bei mir funktioniert. grep -ri listen /etc/apache2
Ich habe eine Liste mit mehreren, Listen: 80
aber alle davon befanden sich in httpd.conf-Dateien mit .bak, .original, ~previous, .pre-update. Alle außer einem wurden für httpd verwendet. Woher weiß ich das? httpd -V
Das ergibt:
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/opt/local"
-D SUEXEC_BIN="/opt/local/bin/suexec"
-D DEFAULT_PIDLOG="var/run/apache2/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="etc/apache2/httpd.conf"
und diese letzte Datei enthält diese Zeilen:
Listen 8080
Listen 80
Jetzt habe ich keine Ideen mehr.
PS: Nachdem ich die Protokolle durchforstet habe, ist dies nun ein deutliches Zeichen dafür, dass ich mehrere Apache-Installationen habe (wahrscheinlich Überbleibsel von Homebrew-Installationen). Diese beiden Zeilen:
[Fri Feb 17 00:22:56.067511 2023] [mpm_prefork:notice] [pid 104] AH00163: Apache/2.4.46 (Unix) PHP/7.3.33 LibreSSL/2.5.5 configured -- resuming normal operations
[Fri Feb 17 00:22:56.067613 2023] [core:notice] [pid 104] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
In der ersten Zeile steht, dass Apache/2.4.46 ausgeführt wird, aber das ist nicht die Version, die ich bekomme, wenn ich es ausführe. httpd -v
Die zweite Zeile scheint den Startbefehl für den Apache-Prozess zu protokollieren. Wo könnte diese Befehlszeile möglicherweise zu finden sein? Hat mit dem Startvorgang zu tun, oder?