如上所述,當symlink鏈接到httpdocs目錄之外的php文件Apache/php提供一個空文件時。但是,如果我將擴展名更改爲html,則文件將作爲html文檔正確提供。這導致我相信它不是一個權限錯誤,但可能是與PHP配置(可能open_basedir導致這個?)或Apache有關的東西。當symlinking鏈接到httpdocs之外的php腳本時,Apache提供空文件
有誰知道什麼可能會導致此行爲?
編輯:任何人想知道這個,問題是由PHP的open_basedir限制造成的。
如上所述,當symlink鏈接到httpdocs目錄之外的php文件Apache/php提供一個空文件時。但是,如果我將擴展名更改爲html,則文件將作爲html文檔正確提供。這導致我相信它不是一個權限錯誤,但可能是與PHP配置(可能open_basedir導致這個?)或Apache有關的東西。當symlinking鏈接到httpdocs之外的php腳本時,Apache提供空文件
有誰知道什麼可能會導致此行爲?
編輯:任何人想知道這個,問題是由PHP的open_basedir限制造成的。
我測試了webroot/htdocs中的一個PHP腳本的符號鏈接。工作得很好。
提出了以下文件
/some/directory/myphpscript.php (the script)
/some/directory/htdocs/symlink.php (webroot)
在我加了一個Hello World腳本(<?php echo 'Hello world'; ?>
)的myphpscript.php。符號鏈接站在在使用後續命令在命令行創建/一些/目錄/ htdocs中/:
ln -s ../myphpscript.php symlink.php
確保
../../path/to/script.php
)。通過打開文件來測試鏈接(例如nano symlink.php
)。查看Apache error.log以獲取錯誤消息。
網絡服務器對php文件有執行權限嗎? – jessica
是的,服務器實際上是服務頁面,而不是拋出一個403 – Steven
@jessica PHP文件不需要是可執行的,因爲PHP正在運行他們,而不是操作系統 – Brian