显示“它有效!”的网站页面,而不是 vhost 配置中指定的内容

Posted

技术标签:

【中文标题】显示“它有效!”的网站页面,而不是 vhost 配置中指定的内容【英文标题】:Sites showing "It Works!" page, not what is specified in vhost configs 【发布时间】:2013-11-12 11:31:30 【问题描述】:

经过数小时的阅读/尝试了十几个有关设置虚拟主机的教程后,我似乎已将一切设置正确。基本上,在升级我的 Ubuntu 发行版(我知道,对吗?)之后,Apache 升级到 2.4,一切都崩溃了。在试图弄清楚这一点之后,我决定把所有事情都搞砸并重新开始。 php/Apache 是最新的。

我正在返回根索引(“It Works!”),但不是我指定的 DocumentRoot。

/etc/apache2/sites-available/domain.com.conf

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias www.domain.com

    # Indexes + Document Root
    DirectoryIndex index.php index.html
    DocumentRoot /var/www/domain.com/htdocs/

    # Logging
    ErrorLog  /var/www/domain.com/logs/error.log
    CustomLog /var/www/domain.com/logs/access.log combined

    <Directory "/var/www/domain.com/htdocs/">
            Options Indexes FollowSymLinks Includes
            AllowOverride All
            Require all granted
    </Directory>
</VirtualHost>

我输入了“sudo a2ensite domain.com.conf”,正如您所料,它显示在 /enabled-sites 中。

apache2ctl -S

VirtualHost configuration:
*:80     is a NameVirtualHost
     default server domain.com (/etc/apache2/sites-enabled/domain.com.conf:1)
     port 80 namevhost domain.com (/etc/apache2/sites-enabled/domain.com.conf:1)
             alias www.domain.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

希望这是我忽略的一些愚蠢的事情,因为这是一个令人沮丧的夜晚,我已经尝试了我能想到的一切,所以我不必为此打扰你们(对不起!)。当我启动/重新启动时,我没有从 Apache 收到任何错误,也没有在任何错误日志中收到任何内容。不确定这是否适用,但 DirectoryRoot 权限设置为 755。


更新 (11/05/13)

显然,“魔法修复仙女”突然出现并解决了这个问题。据我所知,没有安装缓存引擎(除非 Apache 2.4 默认安装一个?),所以我不确定什么可以改变自己以使其在周末解析到正确的目录(我没有工作),但你去。只是为了质问:是的,我已经重新启动了 apache(一百万次),所以这不是解决方法。

【问题讨论】:

【参考方案1】:

升级到 Ubuntu 的“saucy”版本时遇到了同样的问题。就我而言,我有几个没有后缀“.conf”的配置(“sites-available”)。

由于 apache2.conf 有一个指令,该指令仅包括具有此后缀的已启用站点,因此正确加载的唯一配置是默认配置。 因此,我建议您删除“启用站点”文件夹中的所有链接,确保“站点可用”中的所有配置都具有后缀 .conf,并使用“a2ensite”程序再次启用您的站点!

问候,加斯

【讨论】:

是的,我已经阅读了相关内容并进行了调整。 “domain.com.conf”正在出现,它应该在“/sites-enabled”下【参考方案2】:

您确定默认的 vhost 文件不是您想要的吗?确保启用的唯一配置是您的新虚拟主机首先使用 a2dissite 命令并重新启动 apache。

然后检查您的 vhost 中指定的访问日志,看看它实际拉取了什么。

# Logging
ErrorLog  /var/www/domain.com/logs/error.log
CustomLog /var/www/domain.com/logs/access.log combined

应该针对您的虚拟主机:

# Logging
ErrorLog  /var/www/domain.com/logs/error-example.com.log
CustomLog /var/www/domain.com/logs/access-example.com.log combined

【讨论】:

正如上面显示的“apache2ctl -S”,我只运行一个域,所以 a2dissite 只允许我禁用我正在尝试运行的站点。此外,我在“/etc/apache2/sites-available”中删除了 default.conf,认为它可能会以某种方式覆盖其他 vhost 配置设置。其他地方有默认配置吗? 我认为这是 ubuntu。它还会自动添加来自 /etc/apahce2/conf.d、httpd.conf 等的内容。【参考方案3】:

我知道这是一个老问题,但仍然没有真正的答案。我今天遇到了同样的问题,似乎重新启动服务:

service apache2 restart

或重新加载:

service apache2 reload

正如 a2ensite 所建议的那样“还不够”或根本不起作用。我重新启动了几次服务,但没有结果。然后我做了一个:

service apache2 stop

然后重新启动服务:

service apache2 start

这解决了问题。看到这种行为很奇怪,但它可能是由错误配置的 runscript 引起的。

【讨论】:

以上是关于显示“它有效!”的网站页面,而不是 vhost 配置中指定的内容的主要内容,如果未能解决你的问题,请参考以下文章

环境配好了却报404

(问号) 而不是旧页面上的ÅÄÖ

怎么让网站的导航打开时是新网页? 例如 论坛 我点下他就重新跳出一个页面出来,而不是继续在原网显示的.谢

如何使用 .htaccess 而不是 VHost 将文档根目录设置为子目录

我无法让 Vhost 在 centos 6.8 上托管多个 wordpress 网站

我的 htaccess 规则转到页面而不是 id