首先介绍一些背景信息:
- 使用 PhpStorm IDE(实际上并不重要,只是传递信息)
- 使用 Vagrant 运行 Ubuntu 14.04 机器(Vagrant 的使用也不重要)
/var/www/
在虚拟服务器上有主文件夹- 在虚拟服务器上的文件夹
default.dev
中有命名站点/var/www/default.dev/
文件内容
/etc/apache2/sites-available/000-default.conf
:<VirtualHost *:80> ServerAdmin [email protected] ServerName localhost DocumentRoot /var/www/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
文件内容
/etc/apache2/sites-available/default.dev.conf
:<VirtualHost default.dev:80> ServerAdmin [email protected] ServerName default.dev ServerAlias default.dev DocumentRoot /var/www/default.dev/src/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
两个站点均已通过 sudo a2ensite 启用
视窗主办方文件包含以下内容:
192.168.10.10 localhost 192.168.10.10 default.dev (plus commented out Vagrant ID)
尝试设置 PHP 单元测试,这对 PhpStorm + Vagrant 来说有点奇怪,需要我能够直接从我的测试站点单独访问本地主机
- default.dev 在浏览器中可以正确访问
- 直接进入 localhost 会错误地加载 default.dev 网站的内容
- 例如:
尝试访问位于/var/www/phpinfo.php
via 的文件http://localhost/phpinfo.php
,将导致文件位于的站点出现 404 错误/var/www/default.dev/src/
再说一遍:
在浏览器中访问 default.dev (位于/var/www/default.dev/src/
)可以正常工作
我如何配置我的系统以便可以/var/www/
通过浏览器访问localhost
?
非常感谢大家花时间阅读这篇文章,甚至大感谢所有花时间/精力回复的人
答案1
根据 Apache 文档,ServerName
需要完整限定域名 (FQDN).localhost
名称不是完全限定域名。
尝试改变你的000-default.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName default.localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
更改 Windows 主机:
192.168.10.10 default.localhost
根据 apache 手册:
Syntax: <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
Addr can be any of the following, optionally followed by a colon and a port number (or *):
The IP address of the virtual host;
A fully qualified domain name for the IP address of the virtual host (not recommended);
The character *, which acts as a wildcard and matches any IP address.
The string _default_, which is an alias for *
因此,我建议改变:
<VirtualHost default.dev:80>
和:
<VirtualHost *:80>