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

Тема в разделе "Как сделать...", создана пользователем Rigor, 21 ноя 2012.

  1. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Создаю файл таким образом:


    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);  
    В итоге файл создается, но править я его почему-то не могу через фтп, пишет, что нет доступа. Может что-то с правами не так? Но у других файлов, которые создавал вручную, права такие же.

    Заранее спасибо за поомщь.
     
  2. SolutionFix

    SolutionFix 17 лет програмлю ;)

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

    PS chown в таком случае
     
    latteo нравится это.
  3. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Да так и есть, владелец именно такой. Но функция chown не изменяет ничего. Владелец остается таким же
     
  4. SolutionFix

    SolutionFix 17 лет програмлю ;)

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

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


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