Apache 虚拟主机不起作用

Posted

技术标签:

【中文标题】Apache 虚拟主机不起作用【英文标题】:Apache virtual hosts doesn't work 【发布时间】:2018-05-09 05:31:51 【问题描述】:

我想在我的 apache 上设置虚拟主机。

sudo a2enmod vhost_alias -> Module vhost_alias already enabled

我有这两个文件:

/var/www/test/index.php/var/www/test2/index.php

我想分别加载它们

http://test.local/ 和 http://www.test.local/

http://test2.local/ 和 http://www.test2.local/

我的配置文件:(/etc/apache2/sites-enabled/000-default.conf)

UseCanonicalName Off
<VirtualHost *:80>
    ServerAlias *.local
    VirtualDocumentRoot /var/www/%1+
</VirtualHost>
VirtualDocumentRoot /www/hosts/%0/docs
VirtualScriptAlias /www/hosts/%0/cgi-bin

我不明白我做错了什么,请帮助我。我在谷歌上搜索了 2 天,但什么也没有。我已经阅读了http://httpd.apache.org/docs/2.0/vhosts/mass.html,但这对我没有帮助。 你能告诉我应该如何配置我的文件吗?

【问题讨论】:

你是否启用了在 apache config 中包含 vhosts 文件的行? 【参考方案1】:

您是否在 /etc/hosts 文件中添加了这一行?

127.0.0.1 test.local
127.0.0.1 www.test.local
127.0.0.1 test2.local
127.0.0.1 www.test2.local

编辑

试试这个配置:

<VirtualHost *:80>
    ServerName test.local
    DocumentRoot /var/www/test
    <Directory  "/var/www/test/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

在此之前尝试仅使用一个域,然后您将为其他域配置别名

然后将此文件保存在 /etc/apache2/sites-available/test.local.conf 中

然后

sudo a2ensite test.local.conf
sudo /etc/init.d/apache2 reload

转到http://test.local

【讨论】:

我已添加,现在 test.local 未找到 在此服务器上未找到请求的 URL /。 在编辑 vhost 配置后是否重新启动 apache?您必须使用 a2ensite myvhostconfig.conf 启用 vhost 配置,然后重新加载 apache。 但是我配置 /000-default.conf 我没有创建任何新的 conf 文件。 重启apache时是否有一些错误信息?也请查看 apache 错误日志文件。如果我在你那里我会尝试使用一个没有正则表达式的配置文件,只有一个域,直到这个工作。我在答案中向您发布了一个 apache vhost 配置文件 不要忘记将原始配置文件放入您的 000-default.conf 并在此之后重新加载 apache,我会保持不变并将我的虚拟主机放在单独的配置文件中

以上是关于Apache 虚拟主机不起作用的主要内容,如果未能解决你的问题,请参考以下文章

不同端口上的 Apache 虚拟主机不起作用

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

apache vhost设置不起作用

在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用

ProxyHTMLURLMap 在 apache2.4 中不起作用

当存在多个虚拟主机标签时,Apache 2.4.7 重定向不起作用 Ubuntu14.04