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


Create a valid symlink for PHP file

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

ln -s test.php clone/test.php

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

另外,当我检查在FTP中创建的符号链接时,它会在那里显示文件夹图标。(虽然这无论如何都不会是那么大的问题。

所以简单地说,我希望我可以通过网络浏览器访问clone/test.php。难道就没有什么好办法吗?

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

Options +FollowSymLinks +SymLinksIfOwnerMatch

或者使用 httpd.conf 文件:

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

可能因您的配置而异。

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

正如@LukePittman指出的那样,您还需要在目录上启用FollowSymLinks(如果尚未

启用)。

终于我想通了。当我尝试使用完整路径作为源路径时,它工作正常。

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

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

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

mklink/J dynamic c:''somedirectory''www-dynamic

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

    Options ExecCGI FollowSymLinks 包括 IncludeNOEXEC Indexes MultiViews symLinksIfOwnerMatch 允许覆盖全部

卢克的解决方案只需要松开破折号"-"。 在此之前,Apache不会启动。Apache: Apache/2.4.26 (Win32) OpenSSL/1.0.2l PHP/7.0.22