Fab*_*ert 7 apache virtualhost docker
我正在尝试在同一个Docker容器和端口上运行两个不同的域.
Docker容器运行CentOS.docker-compose.yml
看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
我还在/etc/hosts
主机(OS X)中声明了两个.dev域名.
我配置虚拟主机已经有一段时间了.我的理解是我只需要声明它们,并且Apache会自动提供正确的文件,具体取决于所请求的HTTP HOST.
这就是我所拥有的,在最后添加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 webmaster@dummy.dev
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 webmaster@tests.dev
ErrorLog logs/tests.dev-error_log
CustomLog logs/tests.dev-access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但是,在实践中,访问dummy.dev或tests.dev实际上是有用的/var/www/html/default
.这就好像Apache没有意识到正在调用哪个主机(尽管$_SERVER
PHP中的转储确实显示了预期的HTTP_HOST
值,即:127.0.0.1,dummy.dev或者tests.dev,具体取决于我访问的URL.)
我错过了什么?
我不清楚这是Apache问题还是Docker问题.
(请注意,这是一个不同的问题,如何在同一个域上使用不同的端口托管多个应用程序.在我的情况下,我确实希望虚拟主机全部位于同一个应用程序/端口/容器内.)
事实证明这是 Apache 配置问题。
我需要显式启用域名虚拟主机,如下所示:
NameVirtualHost *:80
Run Code Online (Sandbox Code Playgroud)
Docker 与此事无关。
归档时间: |
|
查看次数: |
13972 次 |
最近记录: |