Php 403禁止在web根目录中的符号链接上使用
我在一个LAMP堆栈上的共享主机包上,没有外壳访问权限 我可以使用PHP的Php 403禁止在web根目录中的符号链接上使用,php,apache,symlink,Php,Apache,Symlink,我在一个LAMP堆栈上的共享主机包上,没有外壳访问权限 我可以使用PHP的symlink()函数创建符号链接 假设我的web根是/home/www/user1/public 假设我有一个名为/home/www/user1/public/real_dir 我创建了一个名为/home/www/user1/public/fake_dir的符号链接,指向real_dir 为什么我在尝试访问www.mydomain.com/fake_dir时会得到一个403禁止的,而在尝试访问www.mydomain.c
symlink()
函数创建符号链接
假设我的web根是/home/www/user1/public
假设我有一个名为/home/www/user1/public/real_dir
我创建了一个名为/home/www/user1/public/fake_dir
的符号链接,指向real_dir
为什么我在尝试访问www.mydomain.com/fake_dir
时会得到一个403禁止的,而在尝试访问www.mydomain.com/real_dir
时却没有
这不应该是一个权限问题,因为当我用PHP创建一个文件时,我完全可以访问它
我尝试在.htaccess中关闭和打开FollowSymlinks
(它是打开的),但没有成功
是否
FollowSymlinks
在.htaccess文件中被定义为不可覆盖?或者,在Apache中使用符号链接时,还有什么需要注意的吗?必须将Apache配置为允许访问文件系统上的目录。这必须由系统管理员通过在apache配置文件(httpd.conf)中插入指令来完成
由于实际目录位于web根目录内,因此必须可以访问该目录,但可能尚未为该目录启用FollowSymLinks-这也必须添加到指令中
请参见这可能是SELinux安全问题 cat/selinux/enforce
如果值为1,则将其设置为0,然后重新启动apache。因此,如果未按此方式配置,并且
FollowSymlinks
处于关闭状态,则尝试访问符号链接(即使目标也位于web根目录中)将引发403?这就是原因吗?对不起,我刚刚重新阅读了你的问题,发现真正的目录在web根目录中,因此可以访问它,但是可能无法启用FollowSymLinks。我更新了我的答案以反映这一点。-1这仍然不是OP问题的答案。OP似乎完全了解FollowSymlinks
选项。但是他问是否可以从httpd.conf中否决从.htaccess
中进行的设置。我的回答是必须使用httpd.conf文件中的指令为目录启用FollowSymLinks。有人知道一种方法来判断FollowSymLinks是否在没有访问apache配置的情况下启用吗?OP没有shell访问权限,如他问题的第一行所述。