
SO: macOS Mojave 10.14.6
Servidor HTTP: Apache 2.4.55
Ao tentar reiniciar o servidor Apache, recebo a mensagem "Endereço já em uso...". Hm, então deve haver um processo que escute essa porta, certo? Com esta linha (de outro lugar) no Terminal para ver o que está acontecendo:
ps auxw | grep httpd
dá
_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
Certo, então agora eu tento parar com isso
httpd -k stop
que dá
httpd (no pid file) not running
Ok, então eu tento com
/usr/sbin/httpd -k stop
httpd (pid 104?) not running
Hum... talvez:
apachectl -k stop
httpd (no pid file) not running
Então, o que está acontecendo? E como faço para reiniciá-lo? Esta é a primeira vez que estou lidando com esse tipo de erro em relação ao Apache no OSX.
Eu verifiqueieste tópicomas nada funcionou para mim. Usando, grep -ri listen /etc/apache2
tenho uma lista de vários, Listen: 80
mas todos eles estão em arquivos httpd.conf com .bak, .original, ~previous, .pre-update. Todos, exceto um que está sendo usado para httpd. Como eu sei? httpd -V
que dá:
-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"
e esse último arquivo tem estas linhas:
Listen 8080
Listen 80
Então agora estou sem ideias.
PS: Depois de pesquisar os logs, isso agora é um sinal revelador de que tenho várias instalações do Apache (provavelmente sobras de instalações do Homebrew). Estas duas linhas:
[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'
A primeira linha diz que está executando o Apache/2.4.46, mas não é a versão que obtenho quando executo. httpd -v
A segunda linha parece registrar o comando inicial do processo Apache. Onde essa linha de comando poderia estar localizada? Tem a ver com o processo de inicialização, certo?