更改 Apache 2.4 上的 documentroot

更改 Apache 2.4 上的 documentroot

我知道如何在 Apache 2.2 上执行此操作,但是如何更改 Apache 2.4 上的文档根目录?我在 Virtualbox VM 上运行 Debian 8.20 作为我的 apache 服务器,并运行 Ubuntu 15.04 作为我的主机操作系统。

我尝试将 /ooo-default.conf 上的文档根目录更改为:/home/www

我还想我必须执行 chmod –R 755 /home/www。目录内部是但是每当我尝试在 Firefox 中加载虚拟机的 IP 时,它只是 404。

以下是 Apache 错误日志中的一次运行:

[Wed Oct 28 20:05:38.708080 2015] [mpm_prefork:notice] [pid 5884] AH00163: Apache/2.4.10 (Ubuntu) configured -- resuming normal operations
[Wed Oct 28 20:05:38.708142 2015] [core:notice] [pid 5884] AH00094: Command line: '/usr/sbin/apache2'
[Wed Oct 28 20:05:52.281645 2015] [core:error] [pid 5887] (13)Permission denied: [client 127.0.0.1:46927] AH00035: access to /index.php denied (filesystem path '/home/www/index.php') be$
[Wed Oct 28 20:06:37.527726 2015] [mpm_prefork:notice] [pid 5884] AH00169: caught SIGTERM, shutting down

现在,当我尝试从浏览器连接到虚拟机时遇到超时。

答案1

为什么不设置 DocumentRoot 呢/etc/apache2/apache2.conf?对于所有虚拟主机来说都是一样的。如果你设置了它,000-default.conf我想你也必须在/etc/apache2/sites-enabled/创建它们的那天设置它。

要设置正确的所有者和权限,您必须知道哪个用户运行该服务。无论如何,我认为读取权限应该足够了

原因可能是 SElinux,

SELinux 是一个强制访问控制 (MAC) 系统,它是一个内核 (LSM) 增强功能,用于将程序限制在有限的资源范围内。

我猜想它的安全策略之一是避免 apache2 用户读取不在下面的文件夹/var/www/,不建议禁用但有可能,这取决于您将如何使用虚拟机(测试开发产品?)。

答案2

线索就在这里

[Wed Oct 28 20:05:52.281645 2015] [core:error] [pid 5887] (13)Permission denied: [client 127.0.0.1:46927] AH00035: access to /index.php denied (filesystem path '/home/www/index.php')

Apache 无法访问或运行您的index.php.确保/home和的权限/home/www足以让 Apache 访问它们并且index.php也是可读的:

chmod a+rx / /home /home/www
chmod a+r /home/www/index.php

您还需要检查 Apache 配置中的访问权限。查找<Directory><Location>指令并确保它们与您的新文档根匹配。根据需要重新启动 Apache。


如果这不能解决问题,请尝试禁用 SELinux 以测试这是否是问题所在。如果是,您可以了解如何轻松放松对 Apache 的访问限制。

答案3

这是步骤。

  • 更改 000-default.conf 中的文档根目录。
  • 重新启动阿帕奇2

谢谢

相关内容