我正在使用Apache2完全本地开发的目的。 我试图使DocumentRoot
为/home/vikrant/www/
而/home/vikrant/
权限为700
。
当DocumentRoot
是/home/vikrant/www/
但是它工作时,我得到了403 Forbidden
! 当DocumentRoot
是/var/www/
。
我甚至将/home/vikrant/www/
权限更改为777
,并将所有者和组更改为www-data
。
是否有可能从主目录服务,而主目录没有公共权限? 如果是,那么如何?
将你的/ Var / www /链接到你的家庭wikrant www,并确保apache守护进程所有者已经读取了该文件夹的权限。
ln -s / home / vikrant / www / var / www / vikrant chmod -R g + w / var / www / vikrant
ls -alt / var / www / vikrant#检查哪个组是所有者。
ps axu | grep apache2#检查apache守护进程的所有者。
将apache守护程序的所有者添加到拥有/ var / www / vikrant文件的组中。
/home/vikrant
至less需要711个权限。 用户必须具有目录上的执行权限(+ x或1)以访问其下的任何内容。
检查一下你的configuration。 您的默认Apache安装程序可能安装为不允许通信到/。 对于这个问题,可能只是configuration为允许stream量到/ var / www。
除了设置目录权限之外(还有像上面说的那样,你至less需要在其他目录上执行才能遍历目录),你要确保你有如下的configuration:
Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all
Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all
如果你按照上面的解决scheme,只是从/ var / www创build一个符号链接回你的主目录,那么你需要确保Apache已经被告知可以遵循符号链接,通过添加FollowSymLinks
到Options节您现有的文档根目录。
最后,如果您在suExec下使用CGI,那么符号链接是最好的select,因为suExec已经编译成“安全”path。 不过,如果您使用的是Debian发行版,那么有一个简单的方法。
还有一种方法是定义一个新的基于虚拟主机的虚拟主机,指向你的主目录。