Ubuntu 15.10 上的 Apache2 虚拟主机更改 DocumentRoot

Ubuntu 15.10 上的 Apache2 虚拟主机更改 DocumentRoot

背景 - 我刚购买了一台 Ubuntu 15.10 笔记本电脑 (System76),并从 Windows 7 转移过来(是的!- 真的很喜欢启动速度和应用程序速度)。在 Windows 上,我有一个 Apache、MySQL 和 PHP 堆栈以及多个 Apache 虚拟主机,其中 DocumentRoot 指向目录内的目录,我为不同的应用程序开发 php 和 Java 软件并在这些虚拟主机中对其进行了测试,例如 java_projects、php_ps_projects。

我刚刚让 LAMP 堆栈在笔记本电脑和虚拟主机上运行,​​它们位于/var/www

我尝试指向DocumentRoot /home/roy/websites/php_js_projects并修改<Directory /var/www/>为具有<Directory /home/roy/websites//>相同属性,但得到:

"Forbidden You don't have permission to access / on this server.
Apache/2.4.12 (Ubuntu) Server at cnrepperson_com Port 80"

我已经在谷歌上搜索过了,没有看到任何关于如何实现这一点或者是否可行的信息。

这可能吗?如果可以,需要哪些步骤?

当然希望这会起作用,因为我不想开发并复制到测试位置。

提前致谢,Roy

答案1

您需要确保运行 apache2 ( www-data) 的虚拟用户/组至少对路径中的所有目录具有扫描访问权限 (x)。例如,以下命令(以 root 身份):

# chmod o+x /home /home/roy /home/roy/websites
# chgrp -R www-data /home/roy/websites/php_js_projects

后一个命令将使该目录树中的所有文件都属于 group www-data,即 apache2 的组。当然,所有发布的文件也需要具有组可访问性。

另一种我认为通常更好的方法是将用户添加roy到组中www-data,然后将其设置为将已发布的文件保存在 下的某个位置/var/www,并使用来自主目录的链接roy's。这样,您就可以更清楚地区分“私有”文件和“公共”文件。

相关内容