Depois de instalar o link com brew, você tem dois ambientes de servidor web Apache completamente diferentes:
- brew's httpd24
- o http: // macOS / OS X original
Ambos possuem diferentes arquivos de configuração e binários apachectl (e outros). O primeiro é instalado em / usr / local / Cellar / httpd24 e seus binários são vinculados a / usr / local / bin. Os binários relacionados ao http do macOS estão localizados em / usr / sbin.
Dependendo da sua variável PATH (insira echo $PATH
para obtê-lo) sudo apachectl [cmd]
controla o primeiro ou o segundo ambiente do Apache.
Depois de instalar o brew, o PATH padrão deve ser /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
, o que favorece o httpd24 do brew. Você pode controlar o Apache do macOS usando o caminho completo (/ usr / sbin / apachectl).
Se você tem um caminho diferente que não favorece / usr / local / bin sobre / usr / sbin é o contrário. Para obter o caminho do apachectl favorito , você também pode simplesmente inserir which apachectl
.
Verifique isso com /usr/local/bin/apachectl -S
, o que deve render:
VirtualHost configuration:
ServerRoot: "/usr/local/opt/httpd24"
Main DocumentRoot: "/usr/local/var/www/htdocs"
Main ErrorLog: "/usr/local/var/log/apache2/error_log"
Mutex default: dir="/usr/local/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/usr/local/var/run/apache2/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
e /usr/sbin/apachectl -S
VirtualHost configuration:
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex default: dir="/private/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex proxy: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used
Existem não arquivos / pastas usados mutuamente.
Eles também usam arquivos de configuração padrão diferentes:
/usr/local/bin/apachectl -t -D DUMP_INCLUDES
Included configuration files:
(*) /usr/local/etc/apache2/2.4/httpd.conf
O comando não funciona corretamente para o apachectl original (macOS) e apenas produz: Sintaxe OK.
Se você executar ambos os httpds (configurando diferentes portas aqui: 80: macOS; 8080 httpd24 - verifique isso nos respectivos arquivos de configuração) ps -aef | grep httpd | grep -v grep
mostrará o seguinte:
0 76 1 0 4:54pm ?? 0:00.13 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 219 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 220 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 221 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 222 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 223 76 0 4:54pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
1 4239 76 0 5:06pm ?? 0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
0 8251 1 0 5:45pm ?? 0:00.08 /usr/sbin/httpd -D FOREGROUND
70 8261 8251 0 5:46pm ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
Os primeiros sete pids pertencem ao httpd24, os dois últimos ao http do macOS - verifique os caminhos binários listados!
e nmap localhost
:
Starting Nmap 7.31 ( https://nmap.org ) at 2016-12-22 18:00 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00039s latency).
Other addresses for localhost (not scanned): ::1 fe80::1
Not shown: 499 closed ports, 498 filtered ports
PORT STATE SERVICE
80/tcp open http
8080/tcp open http-proxy
Na sua mensagem de bate-papo particular , você pode ver claramente que o httpd24 não é strong> em execução, mas o httpd do macOS é .
Para desativar o http do macOS, basta executar sudo /usr/sbin/apachectl stop
e adicionalmente sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
(apenas para ter certeza).
Em seguida, copie o método brew service start ...
parando o serviço e instalando um daemon plist real, como recomendado no how-to vinculado.
sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
Reinicie. Se você ainda receber um erro ao se conectar com o localhost: 8080 ao seu site de desenvolvedor local, comente fe80::1%lo0 localhost
em / etc / hosts. No meu ambiente funciona com esta linha embora.
Após investigações posteriores, verifica-se que um proxy da Web configurado incorretamente (parte do Internet Security / Antivirus da ESET) é o culpado. Ao adicionar uma% adequada de localhost
, deve ser possível resolver o problema.