¿Cómo se anula correctamente el registro de httpd
del inicio al reiniciar después de sudo wfsctl start
y el siguiente sudo wfsctl stop
?
Background:
wfsctl
es una "utilidad de control de uso compartido de archivos WebDAV" lanzada con macOS High Sierra. wfsctl
se encuentra en /usr/sbin/wfsctl
.
En mi caso, después de una instalación inicial de macOS High Sierra, el daemon Apache httpd
no está sirviendo contenido inicialmente. (Esto se esperaba.) La observación de que httpd no estaba funcionando podía observarse de varias maneras, incluyendo:
- escriba
localhost
en un navegador web en la misma máquina - escriba
curl localhost
en el terminal en la misma máquina.
curl localhost
# curl: (7) Failed to connect to localhost port 80: Connection refused
Cuando los servicios wfsctl
WebDAV se inician por primera vez, también se inicia httpd
.
sudo wfsctl start
# ...
sudo wfsctl diagnose
# ... snip ...
# All httpd processes:
# COMM RUSER PPID PID STARTED
# httpd root 1 885 4:18PM
# httpd _www 885 890 4:18PM
No fue sorprendente que se haya iniciado un Apache httpd
. Aunque, la configuración de línea de base de Apache httpd
también comienza a servir los contenidos de / Library / WebServer / Documents además de y es independiente de cualquier recurso compartido de WebDAV. En particular, el contenido de index.html
se devuelve a través de localhost
en un navegador web o curl localhost
en la aplicación de Terminal.
curl localhost --verbose
# * Connected to localhost (::1) port 80 (#0)
# > GET / HTTP/1.1
# > Host: localhost
# > User-Agent: curl/7.54.0
# > Accept: */*
# >
# < HTTP/1.1 200 OK
# < Server: Apache/2.4.28 (Unix) mod_secure_transport/2.4.27
# < Content-Location: index.html.en
# <html><body><h1>It works!</h1></body></html>
Finalmente, detenga los servicios WebDAV con sudo wfsctl stop
, luego reinicie. Después de reiniciar, httpd
aparentemente aún se está ejecutando:
# after 'sudo wfsctl stop' and system reboot ...
curl localhost
# <html><body><h1>It works!</h1></body></html>
sudo wfsctl status
# disabled
sudo wfsctl diagnose
# ...
# WFS is not enabled.
# ...
# All httpd processes:
# COMM RUSER PPID PID STARTED
# httpd root 1 85 6:12PM
# httpd _www 85 414 6:13PM
Nota al pie:
¿Es un comportamiento razonablemente esperado que sudo wfsctl stop
no anula también el registro de httpd
?
¿Tal vez wfsctl
presume que no interfiere con otros servicios con podría usarse para iniciar el servidor web httpd
? (Aunque, en mi caso de uso, httpd
no se habilitó por ningún otro medio que no sea wfsctl
.)