在php中,我正在尝试读取位于Web根目录上方的文件(例如/home/[username]/games/
)。我正在尝试读取.swf和.xml文件。我使用此代码在本地LAMP服务器上运行良好:
@readfile("/home/[username]/games/hangman/example.xml");
但是,在外部服务器上测试它,它不起作用。日志中没有php错误,但是当我尝试file_exists()
时,它返回false。我已检查并仔细检查该文件是否存在于该路径中。
文件权限似乎是正确的(它们与我的本地服务器相同),并且文件的所有者是正确的用户。
修改
稍微更新一下;我按照@gnur的说法进行操作,并在虚拟主机设置中的httpd.conf
中设置我的基本名称:
php_admin_value open_basedir "/:/home/[username]/games/"
我之前尝试过设置它做一个不同的值,并且它抛出了一个错误:
open_basedir restriction in effect. File(/home/[username]/games/example.xml) is not within the allowed path
现在,我在尝试读取文件时遇到permission denied
错误。所以我想知道文件权限或所有者是不是正确。
这些是我对游戏目录下文件夹的当前权限:
drwxrwxr-x 2 [username] [username] 4.0K Jun 1 10:13 hangman
然后是该目录下的文件(我实际上试图访问的那些文件):
-rwxrwxr-x 1 [username] [username] 293 Jun 1 10:13 example.xml
-rwxrwxr-x 1 [username] [username] 204K Jun 1 10:13 hangman.swf