Созданные файл недоступен для редактирования по FTP

Rigor

Профессор
Регистрация
1 Июн 2008
Сообщения
203
Реакции
35
Создаю файл таким образом:


PHP:
    $file=fopen($_SERVER['DOCUMENT_ROOT']."/parsers/".$folder."/pars.php","w");
 
    foreach ($newscript as $line)
    fwrite($file,$line);
 
    fclose($file);
    chmod($_SERVER['DOCUMENT_ROOT']."/parsers/".$folder."/pars.php", 0644);

В итоге файл создается, но править я его почему-то не могу через фтп, пишет, что нет доступа. Может что-то с правами не так? Но у других файлов, которые создавал вручную, права такие же.

Заранее спасибо за поомщь.
 
Могу предположить что скрипт работает из-под apache, соответственно он создает файлы от пользователя apache (например www-data).
Соответственно права-то такие-же, да владелец не тот.

PS chown в таком случае
 
Могу предположить что скрипт работает из-под apache, соответственно он создает файлы от пользователя apache (например www-data).
Соответственно права-то такие-же, да владелец не тот.

PS chown в таком случае

Да так и есть, владелец именно такой. Но функция chown не изменяет ничего. Владелец остается таким же
 
Да, может быть и такое. Там много от настроек зависит. Ну что сказать, думай-выкручивайся :)
- можно сделать 666, тогда пофигу какой владелец
- можно запустить скрипт не как модуль apache, а под CGI/FastCGI, заюзать mod_suexec
- можно посмотреть на ограничения в php.ini (кстати странно, обычно если chmod можно, то и chown можно. Может там и chmod не отрабатывает?)
- можно изменить логику скрипта - читать и отдавать файлы через www-интерфейс, или еще как-то избежать проблемы

В общем единого решения нет, такая функциональность (изменение другим пользователем файла, созданного из-под apache) обычно не нужна.


PS А, еще. Попробуй свой $folder руками сделать 777 или владельца www-data. Из-за этого запросто chmod может не работать
 
Назад
Сверху