php fopen ftp_get смена владельца / группы - иногда - почему? - PullRequest
2 голосов
/ 04 сентября 2010

На моем php-хосте у меня есть скрипт, который запускается заданием cron, которое открывает / перезаписывает файл с удаленного ftp-сервера. Это работает большую часть времени, но я обнаружил, что когда он изначально создает файл, владельцем / группой является «736/736», но в какой-то момент владелец и группа меняются на «99/99». Проблема в том, что я начинаю работать с разрешениями - вот код:

$local = fopen("/mypath/myfile.txt","w");
$result = ftp_fget($conn_id, $local,"remotepath/remotefile.txt", FTP_BINARY);
fclose($local);

Я использую этот же код для загрузки нескольких файлов. Это не происходит со всеми файлами. Этот исходный файл больше никогда не затрагивается, за исключением fopen типа «read» («r»).

Я не думаю, что это ftp_fget, поскольку у меня есть другой скрипт, также запускаемый cron, который создает текстовые файлы через fopen "w", и некоторые из этих файлов также являются владельцами "99/99".

Есть мысли? Может ли это быть проблемой конфигурации на стороне isp? Если так, что я скажу им? Когда я говорю им, что мой владелец / группа не правы, они полностью сбрасывают весь мой каталог ftp - разрешения, владелец и т. Д., Что является проблемой.

1 Ответ

1 голос
/ 04 сентября 2010

UID группы 99 и UID владельца 99 равен Nobody или apache. Это одинаково для всех папок, созданных файловой системой. Таким образом, при запуске задания cron файлы принадлежат apache.

Решения:

  1. Вы можете попросить вашего провайдера веб-хостинга исправить это.
  2. Конвертировать все файлы, которые он собирается прочитать / записать, в 777. Если файлы 777, он обычно не пытается изменить разрешение. Однако, если создаются новые файлы, они снова становятся владельцами на 99.
...