为PHP文件创建有效的符号链接

时间:2012-06-20 03:14:45

标签: php symlink

我无法通过如下创建的符号链接访问我服务器上的PHP页面:

ln -s test.php clone/test.php

当我尝试访问该页面时,出现403错误。

另外,当我在FTP中检查创建的符号链接时,它会在那里显示文件夹图标。 (尽管这不会是一个大问题。)

所以我希望我可以通过网络浏览器访问clone/test.php。有没有好办法呢?

4 个答案:

答案 0 :(得分:4)

棘手的一个。您需要编辑类似于以下内容的.htaccess文件:

Options +FollowSymLinks +SymLinksIfOwnerMatch

或者使用httpd.conf文件:

<Directory “/”>
Options -ExecCGI FollowSymLinks -Includes -IncludesNOEXEC -Indexes -MultiViews -symLinksIfOwnerMatch
AllowOverride All
</Directory>

可能会有所不同,具体取决于您的配置。

答案 1 :(得分:2)

您可能遇到只在Unix上发生的符号链接权限错误。确保Apache用户(我假设这是Apache)可以访问指向的文件,以及它上面的每个目录

如果你还没有,你还需要在你的目录上启用FollowSymLinks,正如@LukePittman指出的那样。

答案 2 :(得分:2)

最后我想出来了。 当我尝试使用FULL PATH获取源路径时,它可以正常工作。

因此,何时创建符号链接,似乎我们必须为符号链接将链接的源文件放置完整物理路径。

答案 3 :(得分:0)

我复制了卢克·皮特曼(Luke Pittman)发表的内容,并修改了Codemole所说的内容。

  1. 在htdocs文件夹(D:\ xampp \ htdocs)中创建符号链接

mklink / J动态c:\ somedirectory \ www-dynamic

  1. 然后更改您的httpd.conf以允许对php页面执行访问

     选项ExecCGI FollowSymLinks包括IncludesNOEXEC索引MultiViews symLinksIfOwnerMatch  允许全部覆盖

Luke的解决方案只需要删除破折号“-”即可。在此之前,Apache不会启动。 Apache:Apache / 2.4.26(Win32)OpenSSL / 1.0.2l PHP / 7.0.22