Jak właściwie wyrejestrować się httpd
z uruchamiania przy ponownym uruchomieniu po a sudo wfsctl start
i później sudo wfsctl stop
?
Tło:
wfsctl
to „narzędzie kontroli udostępniania plików WebDAV” wydane wraz z macOS High Sierra. wfsctl
znajduje się na /usr/sbin/wfsctl
.
W moim przypadku po pierwszej instalacji systemu macOS High Sierra httpd
demon Apache początkowo nie wyświetla treści. (Spodziewano się.) Obserwacja, że httpd nie służy, może być obserwowana na różne sposoby, w tym:
- wpisz
localhost
w przeglądarce internetowej na tym samym komputerze - wpisz
curl localhost
terminal na tej samej maszynie.
curl localhost
# curl: (7) Failed to connect to localhost port 80: Connection refused
Przy pierwszym uruchomieniu wfsctl
usługi WebDAV są httpd
również uruchamiane.
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
Nic dziwnego, że uruchomiono Apache httpd
. Chociaż bazowa httpd
konfiguracja Apache również zaczyna obsługiwać zawartość / Library / WebServer / Documents oprócz i niezależnie od jakichkolwiek udziałów WebDAV. W szczególności index.html
treść jest zwracana za localhost
pośrednictwem przeglądarki internetowej lub curl localhost
aplikacji 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>
Na koniec zatrzymaj usługi WebDAV za pomocą sudo wfsctl stop
, a następnie uruchom ponownie. Po ponownym uruchomieniu httpd
najwyraźniej nadal działa:
# 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
Przypis:
Czy jest to uzasadnione oczekiwane zachowanie, które sudo wfsctl stop
również się nie wyrejestrowujehttpd
?
Być może wfsctl
zakłada się, że nie ingeruje w inne usługi, z którymi można by uruchomić httpd
serwer WWW? (Chociaż w moim przypadku użycia httpd
nie zostało włączone w żaden inny sposób niż wfsctl
.)