Apache – 如何从主文件夹内的目录提供服务,而主文件夹没有任何公共权限

我正在使用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发行版,那么有一个简单的方法。

还有一种方法是定义一个新的基于虚拟主机的虚拟主机,指向你的主目录。