Estou instalando toda a pilha LAMP através do Homebrew (Apache, PHP, MySQL, Dnsmasq).
Aqui está um breve resumo da configuração:
ServerName localhost
Listen 80
DocumentRoot "/Users/your_user/Sites"
<Directory "/Users/your_user/Sites">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Com apenas estes, tudo funciona bem.
Na próxima parte, quando tento adicionar host virtual usando uma configuração que sei ter funcionado no passado, encontro erros.
LoadModule vhost_alias_module libexec/mod_vhost_alias.so
<VirtualHost *:80>
DocumentRoot /Users/elzi/Sites
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerName dev
ServerAlias *.dev
VirtualDocumentRoot /Users/elzi/Sites/%-2+
</VirtualHost>
Neste ponto, eu nem estou preocupado com PHP / MySQL / DNSMASQ. Eu só preciso de uma das minhas configurações de host virtual para trabalhar primeiro. Usando a regra inferior, devo poder acessar qualquer site da minha ~/Sites
pasta, desde que faça uma entrada para eles no meu arquivo de hosts.
Posso acessar o site em http://localhost
e ver um índice do que eu definir DocumentRoot
como VirtualDocument
raiz (ou ), mas não consigo acessar o curinga ServerAlias
. Por exemplo,
http://test.dev
não resolve no Apache, apesar de:
- Ele existe no meu arquivo host.
- Ser capaz de fazer ping.
Estou começando a pensar que o problema não está estritamente relacionado ao Apache? Talvez problemas de DNS / IPv6?
Aqui está um despejo de netstat -amp tcp | grep 80
tcp4 0 0 192.168.0.108.49632 151.101.193.69.80 ESTABLISHED
tcp4 0 0 192.168.0.108.49608 151.101.193.69.80 ESTABLISHED
tcp6 0 0 ::1.49567 ::1.80 CLOSE_WAIT
tcp4 0 0 192.168.0.108.49566 192.168.0.101.8060 CLOSE_WAIT
tcp46 0 0 *.80 *.* LISTEN
tcp4 0 0 127.0.0.1.18800 *.* LISTEN
Saída de sudoapachectl -v
Server version: Apache/2.4.23 (Unix)
Server built: Dec 22 2016 18:07:11
Saída de cat /etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
Saída de brew services list
Name Status User Plist
httpd24 started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.httpd24.plist
jack started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.jack.plist
mongodb started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
mysql started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.mysql.plist
php70 started elzi /Users/elzi/Library/LaunchAgents/homebrew.mxcl.php70.plist
Saída de sudo apachectl -S
VirtualHost configuration:
*:80 is a NameVirtualHost
default server localhost (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:3)
port 80 namevhost localhost (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:3)
port 80 namevhost dev (/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:8)
wild alias *.dev
ServerRoot: "/usr/local/opt/httpd24"
Main DocumentRoot: "/Users/elzi/Sites"
Main ErrorLog: "/usr/local/var/log/apache2/error_log"
Mutex rewrite-map: using_defaults
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="elzi" id=501
Group: name="staff" id=20
fonte
/Users/elzi/Sites
, mas você deseja que as conexõesexample.dev
sejam usadas,/Users/elzi/sites/example/
mas as conexõeswww.example.dev
devem ser usadas/Users/elzi/Sites/www.example
. Isso está certo? Você pode dar um exemplo do que você tentou e do que aconteceu?www.example.dev
resolver, apenasexample.dev
Esta foi uma configuração que funcionou bem com o apache 2.2. É uma mágica direta quando funciona, eu apenas crio uma nova pasta no meu ~ / Sites e posso acessá-la automaticamente com a regra curinga * e a%-2+
formatação da string. Agora nada resolve. Mesmo quando adiciono manualmente uma regra do VirtualHost diretamente a uma pasta, ela não é resolvida.brew install --with privledged-ports
2) Não se preocupe em instalar oco.echo.httpdfwd.plist
daemon de inicialização, pois o 2.4 pode usar portas privilegiadas. e 2a) 80 em vez de 8080, quando aplicável.