我试图在全新安装的Ubuntu 11.04上为本地开发设置一个Apache虚拟主机。 这里是我的虚拟主机configuration里面/ sites-available:
<VirtualHost *:80> ServerName morpho.local ServerAlias www.morpho.local ServerAdmin webmaster@localhost DocumentRoot /home/james/projects/morpho # Log file CustomLog /var/log/apache2/morpho.local-access.log combined </VirtualHost>
我已经在/ sites-enabled并重新启动Apache中添加了符号链接。 文档根目录包含一个虚拟的“Hello World”index.html,没有别的。 www-data用户是目录和index.html的所有者。
当我浏览到morpho.local时,我得到了一个403 Forbidden,并且这行被写入(两次)到Apache错误日志:
(13)Permission denied: /home/james/projects/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
这对我来说似乎很奇怪,因为它正在从文档根目录中寻找一个.htaccess文件的一个目录。 为了看看会发生什么,我在那个目录中创build了一个.htaccess,并给了它777的权限,并将所有者和组设置为www-data。 日志中的相同错误。
我的猜测是我错过了一些我需要做的权限,但是它正在寻找一个.htaccess的目录。
再一次,这是一个新鲜的Ubuntu / Apache安装,除了这个单一的虚拟主机,我还没有configuration任何东西。
编辑:我通过设置我的开发文件夹,/ home / james / projects的x权限工作。 这使得www-data Apache用户可以在目录内看到。 我会从答案中尝试ghm1014的设置,因为这似乎是一个更好的解决scheme。 虽然它似乎仍然需要x权限才能使www-data遵循这个符号链接,所以我不知道它是否需要设置或不设置。
感谢您的答复,无论如何。
您必须授予权限才能访问configuration中的文档根目录。 把这样的东西放在VirtualHost条目里面。
<Directory /> Order allow,deny Allow from all </Directory>
主目录不是放置www-doc文件的好目录。 由于/ home /目录没有x权限(导航)给其他用户。 添加此权限意味着任何用户将能够看到您的个人信息。 我会推荐这个:
在apache可以读取的地方创build一个目录:
mkdir / var / www / html /
然后创build一个符号链接到你的真实目录:
ls -s / home / james / projects / morpho / var / www / html /
更改DocumentRoot并添加跟随符号链接选项
DocumentRoot / home / james / projects / morpho
选项FollowSymLinks