Sou novo no Apache e estou pensando se há uma maneira de configurar o VirtualDocumentRoot
para criar uma exceção para apenas um dos meus vhosts no meu servidor local. Atualmente todos os meus sites são armazenados em pastas com a convenção sitename.dev
. Em httpd.conf
, estou configurando dinamicamente VirtualDocumentRoot
com base no nome do servidor:
# get the server name from the Host: header
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /path/to/logs/access.log vcommon
ErrorLog /path/to/logs/errors.log
VirtualDocumentRoot /path/to/vhosts/%0
Isso funciona muito bem para todos os meus sites com uma exceção ... a raiz do documento de um dos sites deve apontar para exception.dev/src/php
em vez de apenas exception.dev
.
De acordo com a resposta que encontrei aqui , soa como se VirtualDocumentRoot
não pudesse ser definido com base em um condicional. Então, eu esperava que meu problema fosse resolvido definindo um alias de algum tipo para apontar exception.dev
para o diretório correto.
Eu tentei adicionar VirtualScriptAlias
, mas isso impede que o servidor Apache seja iniciado:
VirtualScriptAlias /path/to/vhosts/exception.dev /path/to/vhosts/exception.dev/src/php
Eu também tentei o mesmo tipo de coisa com ScriptAlias
e apenas Alias
, mas ainda sem sorte.
Há algo que estou sentindo falta aqui? Ou é o que estou tentando fazer impossível? Qualquer ajuda seria muito apreciada!
Ah, e se ajudar, aqui está minha saída se eu executar httpd -S
:
httpd: Could not reliably determine the server's fully qualified domain name, using XXXXX.local for ServerName
VirtualHost configuration:
Syntax OK
UPDATE :
Consegui que isso funcionasse modificando a resposta de Shane abaixo:
NameVirtualHost *
<VirtualHost *:80>
ServerName exception.dev
DocumentRoot /path/to/vhosts/exception.dev/src/php
</VirtualHost>
<VirtualHost *:80>
ServerName default
ServerAlias *.dev
VirtualDocumentRoot /path/to/vhosts/%0
</VirtualHost>