Какой пользователь PHP на моем компьютере с ОС CentOS Linux? корень? - PullRequest
2 голосов
/ 17 сентября 2009

Привет! Я пытаюсь выяснить, почему я не могу загрузить файлы на мою машину CentOS, работающую в EC2, и думаю, что это может быть проблема с разрешениями (как я заметил из предыдущих вопросов). Как проверить, какие привилегии у моей установки PHP для записи файлов. Каталог, в который я хочу записать файлы, был создан в той же папке, что и сценарии PHP, которые пытаются записать файлы, и права на эту папку - rwxr-xr-x. Владелец папки - root. Владелец файлов PHP, пытающихся записать загруженные файлы, также является пользователем root.

Когда файл PHP пытается записать данные отправляемого байта, я получаю следующее сообщение об ошибке - file_put_contents не удалось открыть поток: нет такого файла или каталога в ...

Как мне ссылаться на каталог, в котором я хочу сохранить файл - абсолютный или относительный? Что еще я делаю не так?

ура

Ответы [ 3 ]

4 голосов
/ 17 сентября 2009

Если под PHP подразумевается процесс веб-сервера и предполагается, что вы используете по умолчанию apache и не изменили его значения по умолчанию, я бы ожидал, что он будет apache пользователем для CentOS.

2 голосов
/ 17 сентября 2009

Использование:

<?php
$user = posix_getpwuid(posix_geteuid());

var_dump($user);
?>

Чтобы получить данные пользователя.

Предполагая, что у вас есть root-доступ, как только вы его получите, разбейте все файлы так, чтобы они были тем же пользователем, что и владелец процесса PHP.

Например:

chown -R username /path/to/directory
2 голосов
/ 17 сентября 2009

Если PHP запускается с веб-сервера, это зависит от конфигурации веб-сервера.

Веб-сервер может отменить привилегии для определенного пользователя (Apache Директива пользователя ) или выполнить его как пользователь-владелец, используя suexec (или что-то подобное).

Обратите внимание, что suexec не позволит вам запускать сценарии от имени пользователя root, и Apache предупреждает вас об установке директивы User в качестве пользователя root; это означает, что любой скрипт, запускаемый из Apache, будет работать от имени пользователя root, что довольно опасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...