веб-сервисы Amazon — невозможно получить доступ к файлу в домашнем каталоге из PHP на сервере EC2

Мне интересно, почему это возвращает пустую строку:

$settings = file_get_contents('/home/ec2-user/settings.json');

но это работает:

$settings = file_get_contents('/var/www/settings.json');

Кажется, я не могу получить доступ к своему файлу json из домашнего каталога.
Любая идея?

-1

Решение

Apache работает под www пользователь, чья домашняя папка имеет значение /var/www, А поскольку PHP-скрипты запускаются в контексте Apache, они также наследуют его пользователя. Таким образом, ваш скрипт не может получить доступ к файлам из домашней папки других пользователей.

Если вы запустите соответствующий код через CLI (вы вошли через ssh), вы сможете получить доступ к содержимому /home/ec2-user/settings.json как скрипт будет работать в контексте вашего пользователя.

0

Другие решения

Обычно веб-сервер работает как собственный пользователь. Этот пользователь не имеет домашнего каталога (в / home) и не имеет доступа к домашнему каталогу других пользователей.

Если display_errors включен, вы должны увидеть предупреждение с помощью file_get_contents чтобы получить доступ к файлу, к которому у вас нет прав доступа.

0

По вопросам рекламы [email protected]