Предоставление разрешения на запись в файл с использованием php - PullRequest
0 голосов
/ 14 октября 2010

У меня есть файл в папке проекта. Как я могу дать разрешение на запись в файл, используя php. Я использовал этот код

chmod($file,0777);

Но он выдает ошибку

Warning: chmod() [function.chmod]: Operation not permitted 

Файл создан другим пользователем. Есть ли у него какой-либо способ сделать это. Спасибо заранее

Ответы [ 4 ]

5 голосов
/ 14 октября 2010

Текущий пользователь - это пользователь, под которым работает PHP.Вероятно, это не тот пользователь, которого вы используете для обычной оболочки или доступа по FTP.Режим может быть изменен только пользователем, который владеет файлом в большинстве систем.

С http://php.net/manual/en/function.chmod.php

5 голосов
/ 14 октября 2010

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

Обычно вы делаете chmod только для файлов, созданных с помощью PHP.Чтобы сделать это для других файлов, вам нужно сменить владельца (chown).

3 голосов
/ 14 октября 2010

Ну, вы просто не можете, если там написано, что вам не разрешено. Суть в том, что файл принадлежит какому-то пользователю и группе, скорее всего, root: root - а вы просто пользователь на сервере. Если root является владельцем этого файла, вы не можете изменять разрешения вообще.

Примечания:

$ file должен быть именем файла. Если вы поместите дескриптор туда, файл (скорее всего) не существует, но все же.

Проверьте, не начинается ли имя файла с / или чего-то еще. Попробуйте разные варианты.

0 голосов
/ 14 октября 2010

вы можете установить php через SUEXEC или SUPHP вместо mod_php, который позволяет изменить пользователя, от которого выполняется php, но эта ошибка ничего не решает, если владелец установлен неправильно

...