Configuração remendada do Apache no macOS Sierra - hosts virtuais não funcionam

0

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 ~/Sitespasta, desde que faça uma entrada para eles no meu arquivo de hosts.

Posso acessar o site em http://localhoste ver um índice do que eu definir DocumentRootcomo VirtualDocumentraiz (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
elzi
fonte
Edite sua pergunta para ser muito específico sobre o que você quer dizer com "não funcionará" e "Eu encontro erros". O que você tentou, quais resultados você esperava e quais resultados você obteve?
Spiff
Portanto, se eu estiver interpretando corretamente o seu arquivo de configuração, você deseja conexões com nomes de host desconhecidos, além de "localhost" e "dev" /Users/elzi/Sites, mas você deseja que as conexões example.devsejam usadas, /Users/elzi/sites/example/mas as conexões www.example.devdevem ser usadas /Users/elzi/Sites/www.example. Isso está certo? Você pode dar um exemplo do que você tentou e do que aconteceu?
Spiff
@ Spiff editado para maior clareza. Me desculpe por isso. Isso é exatamente correto, exceto que não estou preocupado em www.example.devresolver, apenas example.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.
Elzi
1
@JakeGould eu consegui fazê-lo funcionar. Confie em mim, é seriamente mágico quando está funcionando. Uso vagrant para muitos outros tipos de projetos, porque acredito que ninguém odeia mais as configurações do apache do que eu.
Elzi
1
@LukasKawerau Eu deveria provavelmente excluir essa pergunta, pois a configuração que eu terminei é bem diferente do que minha postagem original implica, mas eu mais ou menos segui este guia: echo.co/blog/… com duas diferenças importantes - 1) Suplemento versão apache para usar 2.4 e instalado com brew install --with privledged-ports 2) Não se preocupe em instalar o co.echo.httpdfwd.plistdaemon de inicialização, pois o 2.4 pode usar portas privilegiadas. e 2a) 80 em vez de 8080, quando aplicável.
Elzi