В php я пытаюсь прочитать файл, который находится над веб-корнем (например, /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