如何停止默认本地主机虚拟主机定向到命名虚拟主机?

如何停止默认本地主机虚拟主机定向到命名虚拟主机?

首先介绍一些背景信息:

  • 使用 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.phpvia 的文件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>

相关内容