Разрешение отклонено mkdir для cron и браузера

У нас есть PHP-синтаксический скрипт PHP, который загружает фотографии в структуру папок, например /content/images/2012/05/31/%object_id%/ . Этот синтаксический анализатор работает в основном как cronjob DirectAdmin. Мы сталкиваемся с множеством проблем с получением прав на доступ к папкам, чтобы включить загрузку в этот каталог как для cronjob, так и для запуска анализатора через браузер.

Согласно print_r(posix_getpwuid(fileowner($directory))); владелец каталога такой же, как get_current_user() . Тем не менее, я получаю: Warning: mkdir() [function.mkdir]: Permission denied при запуске скрипта через браузер. Он отлично работает при работе в качестве задания cron.

Все папки имеют chmod 0777, и новые папки создаются как таковые;

 mkdir($path,0777,true); 

Естественно, у нас есть те же проблемы с разрешением при загрузке и / или удалении самих файлов.

Есть ли способ включить все действия с файлами, выполняемые как задание cron, так и через браузер?

Мы работаем под управлением Linux с PHP версии 5.2.17.

Related of "Разрешение отклонено mkdir для cron и браузера"

Пара думает, что: get_current_user получает владельца файла .php (то есть скрипта), но НЕ имя пользователя, который запускает скрипт php. Неизменно это разные, поскольку файл будет загружен вами (обычный пользователь), а php / apache будет работать как другой пользователь (часто называемый «apache» или «www».) Вам нужен последний из этих двух. предлагаемый фрагмент из руководства php, чтобы получить следующее:

 $processUser = posix_getpwuid(posix_geteuid()); print $processUser['name']; 

(http://php.net/manual/en/function.get-current-user.php – см. комментарии)


Однако, чтобы решить вашу текущую проблему, я настоятельно рекомендую запустить cron в качестве того же пользователя, что и php / apache, как (проверьте man-страницу на crontab) – пользователь должен быть тем, что указан в этом фрагменте выше, CHOWN the files и каталоги к этому же пользователю (в настоящее время они будут root) и группе, которая совместно используется вами и клиентом FTP. Затем убедитесь, что у пользователя и группы есть права на чтение + запись, поэтому вы также можете редактировать с ftp. Удостоверьтесь, что вы изменяете разрешения для обоих версий (775) и файлов (644) по мере создания их сценария.

Также обратите внимание, что если вы mkdir (), то в приведенной выше директории также должны быть права на запись для пользователя (и это может быть ваша первоначальная проблема, и почему здесь может писать только root / cron).