Ich versuche, zwei verschiedene Domänen auf ein und demselben Docker Container und Port auszuführen.Mehrere VHosts auf ein und demselben Andock-Container
Der Docker Container läuft CentOS. docker-compose.yml
sieht so aus:
web:
image: fab/centos
ports:
- "80:80"
volumes:
- ./src/httpd.conf:/etc/httpd/conf/httpd.conf
- ./src:/var/www/html
- ./src/hosts:/etc/hosts
environment:
- VIRTUAL_HOST=dummy.dev,tests.dev
erklärte ich auch beide .dev Domain-Namen innerhalb von /etc/hosts
auf dem Host-Computer (OS X.)
Es ist schon eine Weile her, seit ich virtuelle Hosts konfiguriert. Mein Verständnis war, dass ich sie nur deklarieren musste und dass Apache automatisch die richtigen Dateien liefern würde, abhängig von dem angeforderten HTTP HOST.
Das ist, was ich habe, fügte am Ende httpd.conf
:
<VirtualHost *:80> # first host = default host
DocumentRoot /var/www/html/default
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/dummy
ServerName dummy.dev
ServerAdmin [email protected]
ErrorLog logs/dummy.dev-error_log
CustomLog logs/dummy.dev-access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/tests
ServerName tests.dev
ServerAdmin [email protected]
ErrorLog logs/tests.dev-error_log
CustomLog logs/tests.dev-access_log common
</VirtualHost>
jedoch in der Praxis entweder dummy.dev oder tests.dev Besuch /var/www/html/default
tatsächlich dient. Dies ist, als hätte Apache nicht erkannt, welcher Host aufgerufen wird (obwohl ein Dump von $_SERVER
in PHP den erwarteten Wert HTTP_HOST
zeigt, dh entweder 127.0.0.1, dummy.dev oder tests.dev, je nachdem, welche URL ich besuche.)
Was habe ich vermisst?
Es ist mir unklar, ob dies ein Apache-Problem oder ein Docker ist.
(Bitte beachten Sie, dass dies eine andere Frage ist, als mehrere Apps in derselben Domäne mit einem anderen Port zu hosten. In meinem Fall möchte ich, dass die virtuellen Hosts alle in/derselben App/Port/Container sind.)