我正在尝试为目录设置符号链接,但出现了最奇怪的错误。我正在使用:
mklink /d C:\www\site\inc C:\inc
我需要运行的文件在哪里C:\inc\script.php
。这看起来很简单,而且它在我第一次执行脚本时确实有效(通过访问http://localhost/inc/script.php
)。但之后,我收到一个错误,并且无法再次成功执行脚本,直到我删除并重新创建符号链接(即使关闭 Apache 或重新启动 Windows 也不起作用)。
请注意,其他一切都运行正常,符号链接确实有效,Apache 确实具有访问权限C:\inc
,并且还启用了 FollowSymLinks。这是我收到的错误:
警告:未知:无法打开流:第 0 行未知中没有该文件或目录
致命错误:未知:无法打开所需的‘C:/inc/script.php’(include_path=‘.;C:\php5\pear’)在第 0 行的未知位置
有谁知道第 0 行的 Unknown 是怎么回事,为什么它在出现此错误之前只执行一次?
答案1
为什么不直接使用 Apache 中的 Alias 来实现您想要的效果,而不是使用 NTFS SymLinks?
将其放入您的 httpd.conf 中:
Alias /inc "C:/inc"
<Directory "C:/inc">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
答案2
使用绝对路径创建符号链接对我来说很有帮助。
mklink /D C:\path\to\symlink C:\path\to\existing\folder