Ubuntu apache 虚拟主机站点在浏览器中不起作用

Posted

技术标签:

【中文标题】Ubuntu apache 虚拟主机站点在浏览器中不起作用【英文标题】:Ubuntu apache virtual host site doesn't work in the browser 【发布时间】:2018-08-05 19:14:15 【问题描述】:

我在/var/www/html/ 中设置了一个 Laravel 站点。我还为此站点设置了一个虚拟主机,因为我想要一个自定义 url(example.dev) 而不是 localhost

这就是我设置虚拟主机的方式:

<VirtualHost *:80>

    ServerName example.dev
    ServerAlias http://example.dev
    DocumentRoot /var/www/html/example/public/

        <Directory /var/www/html/example/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined

</VirtualHost>

完成此操作后,我通过运行 sudo a2dissite 000-default.conf 禁用默认 .conf,然后启用我创建的 .conf (sudo a2ensite example.dev.conf)。在这一切之后,我重新启动了 apache 并重新加载了配置。

从那时起,我将我的服务器名称添加到我的主机文件中,如下所示:

127.0.0.1       localhost       example.dev
127.0.1.1       tangaye

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

现在,当我尝试在浏览器中访问我的网站时,我输入 example.dev 我得到:

无法访问此站点。 example.dev 拒绝连接。

但是当我执行localhost 时,我的网站就会启动。为什么会这样?有趣的是,我意识到当我curl -L example.dev 时,我在终端中获得了我网站的全部预期结果。 为什么我的网站是在终端而不是浏览器中访问的?将不胜感激任何帮助。谢谢!

【问题讨论】:

【参考方案1】:

首先感谢@Bekir 提供heads up。我意识到谷歌已经将.dev 添加为他们的***域名(tld)之一。这意味着如果尝试在本地使用它,一台本地机器应该能够:

提供 HTTPs 拥有自签名证书来处理该问题 将该自签名证书添加到您的本地信任存储区(您不能使用 HSTS 取消自签名证书,它们需要被您的计算机“信任”)

正如post 中提到的,有两个选项:.localhost.test。这两个都解析为127.0.0.1

我都试过了,对我来说效果很好。我也尝试.com,但它只适用于 opera 而不适用于 chrome

chrome 上,当我使用 example.comexample.dev 时,我意识到强制 https,但是当我切换到 example.testexample.localhost 时,所有浏览器都可以正常工作 p>

【讨论】:

以上是关于Ubuntu apache 虚拟主机站点在浏览器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 Ubuntu Linux 上使用 Apache 在本地测试您的站点

Ubuntu14.04配置Apache支持多个站点

保护 Apache 站点权限

ubuntu apache 通过端口新建多个站点

访问Apache虚拟主机的方式(理论部分)

ubuntu apache https设置