我在 Mac OS X 上运行 Apache 2.4。apachectl configtest给我:语法确定。
我设置了两个虚拟主机,一个叫做 localhost,一个叫做 test.dev。
<VirtualHost *:80>
DocumentRoot "/Users/psychomachine/Development/_localhost"
ServerName localhost
ServerAlias www.localhost
<Directory />
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/psychomachine/Development/test"
ServerName test.dev
ServerAlias www.test.dev
<Directory />
Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
本地主机只是工作:
? curl -I -L localhost 15:51:08
HTTP/1.1 200 OK
Date: Tue, 08 Dec 2015 14:51:17 GMT
Server: Apache/2.4.16 (Unix)
Last-Modified: Tue, 08 Dec 2015 08:52:04 GMT
ETag: "c-5265f1673f500"
Accept-Ranges: bytes
Content-Length: 12
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
而 test.dev …
我注意到两台 Mac 上的 Apache 虚拟主机存在一些问题,否则它们具有相同类型的设置(就 httpd.conf、vhosts、主机等而言)。在一台 Mac 上,虚拟主机可以正常运行,而在另一台 Mac 上,我在端口 80 上连接被拒绝。
我认为这似乎不是 Apache 配置的问题,而是与端口有关。
即,无法在 80 上为虚拟主机 test.dev 提供服务的机器在端口扫描时向我显示了这一点:
???????????? ???????????????????...
Port Scanning host: 127.0.0.1
Open TCP Port: 88 kerberos
Open TCP Port: 445 microsoft-ds
Open TCP Port: 548 afpovertcp
Open TCP Port: 631 ipp
???????????? ?????? ?????????…
Run Code Online (Sandbox Code Playgroud)
为 test.dev 提供服务的机器显示:
Port Scanning host: 127.0.0.1
Open TCP Port: 22 ssh
Open TCP Port: 53 domain
Open TCP Port: 80 http
Open TCP Port: 88 kerberos
Open TCP Port: 445 …Run Code Online (Sandbox Code Playgroud)