我在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时还有其他需要注意的地方吗?
答案 0 :(得分:4)
Apache必须配置为允许访问文件系统上的目录。这必须由系统管理员通过插入< Directory>来完成。 apache配置文件中的指令(httpd.conf)。
由于真实目录位于Web根目录内,因此必须可以访问,但可能没有为目录启用FollowSymLinks - 这也必须添加到< Directory>指令。
答案 1 :(得分:0)
这可能是SELinux安全问题。
cat / selinux / enforce 如果值为1,则将其设置为0,然后重新启动apache。