403禁止在Web根目录中使用符号链接

时间:2010-02-07 19:56:36

标签: php apache symlink

我在LAMP堆栈上的共享主机软件包上没有shell访问权限。

我可以使用PHP的symlink()函数创建符号链接。

假设我的网络根目录为/home/www/user1/public

假设我有一个名为/home/www/user1/public/real_dir

的真实目录

我创建了一个名为/home/www/user1/public/fake_dir的符号链接,指向real_dir

为什么我在尝试访问www.mydomain.com/fake_dir时会获得 403 Forbidden ,但在尝试访问www.mydomain.com/real_dir时却没有?

它不应该是权限问题,因为当我在PHP中创建文件时,我可以正确访问它。

我尝试在.htaccess中打开FollowSymlinks并打开(它已启用),但没有运气。

可能是FollowSymlinks被定义为在.htaccess文件中不可覆盖吗?或者在Apache中使用Symlinks时还有其他需要注意的地方吗?

2 个答案:

答案 0 :(得分:4)

Apache必须配置为允许访问文件系统上的目录。这必须由系统管理员通过插入< Directory>来完成。 apache配置文件中的指令(httpd.conf)。

由于真实目录位于Web根目录内,因此必须可以访问,但可能没有为目录启用FollowSymLinks - 这也必须添加到< Directory>指令。

请参阅http://httpd.apache.org/docs/2.0/mod/core.html#directory

答案 1 :(得分:0)

这可能是SELinux安全问题。

cat / selinux / enforce 如果值为1,则将其设置为0,然后重新启动apache。