![更改 Apache 2.4 上的 documentroot](https://linux22.com/image/76129/%E6%9B%B4%E6%94%B9%20Apache%202.4%20%E4%B8%8A%E7%9A%84%20documentroot%20.png)
我知道如何在 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
谢谢