DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7
Posted
技术标签:
【中文标题】DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7【英文标题】:DocumentRoot is not changed, Update from Apache2 2.2.22 to 2.4.7 【发布时间】:2014-06-24 16:16:38 【问题描述】:我确实有以下问题。我已经将一些具有相同层次结构和网站结构的网站移到了带有 Apache 2.4.7 的新服务器上。旧的有 2.2.22。 我已将默认 DocumentRoot 更改为 /var/www
为了进行测试,我在那里创建了一个 index.html 文件,其中包含一个点作为内容。现在我在 /sites-enabled/ 中确实有一个包含以下内容的文件:
<VirtualHost *:80>
ServerAdmin webmaster@test-w2.de
DocumentRoot /var/www/w2/shop2/website/magento
ServerName test-w2.de
ErrorLog /var/www/_logs/w2-error.log
<Directory /var/www/w2/shop2/website/magento>
php_admin_flag safe_mode Off
php_admin_value memory_limit 512M
php_admin_value max_execution_time 600
php_admin_value upload_max_filesize 128M
php_admin_value open_basedir /var/www/w2/shop2/website/magento:/usr/:/tmp
Options -Indexes +FollowSymLinks +Includes
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
这是我的旧 2.2.22 Apache 上的工作配置。现在,当我尝试访问域时,它会抛出带有点的 html 文件!如果我尝试 test-w2.de/w2/shop2/website/magento 它会转到正确的目录,但显然效果不佳;)
所以它完全忽略了 DocumentRoot。这里有什么问题? error.log 什么也没说,access.log 显然说它服务于 /var/www 的 index.html。并且没有像我重新启动apache时那样的配置错误。
我还删除了 sites-enabled/000-default.conf。内容被移到 apache2.conf 中,上面写着:
...
<Directory /var/www/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride None
Require all granted
</Directory>
当然是在加载站点启用/* 的内容之前。
【问题讨论】:
【参考方案1】:好的,我解决了。有两件事;首先是事实,原来的 apache2.conf 正在搜索 *.conf 文件,而我的名字只是没有任何扩展名。但是,在那次错误之后,虚拟主机仍然被忽略了。我发现,
Order deny,allow
和
Allow from all
东西必须替换为:
Require all granted
之后,配置被加载。在没有警告之前没有错误。但这就是问题所在,整个 conf 文件都被忽略了。
【讨论】:
以上是关于DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7的主要内容,如果未能解决你的问题,请参考以下文章
我到处寻找改变 Apache 上的 DocumentRoot 无济于事
Apache重启导致DocumentRoot必须是一个目录,即使它是一个目录并且似乎没有权限问题
mac 打开apach 但无法访问localhost的解决方法