Я пытаюсь написать скрипт установки для системы, над которой я работал. Сценарий копирует некоторые файлы по умолчанию из одного места в другое и создает для них различные папки. У меня этот бит работает, но единственная проблема заключается в том, что при входе по FTP я не могу редактировать или удалять файлы, которые PHP переместил для меня.
Если я войду в систему через терминал, я могу с радостью "sudo chmod -R 777 [dir]", и проблема исчезнет, поэтому вопрос:
Чего мне не хватает в конце PHP?
Моя функция разрешений выглядит следующим образом:
function set_permissions($file)
{
if (file_exists($file)):
chmod($file,0777);
endif;
}
Я понимаю, что не на 100% идеально устанавливать разрешения для 777, но я просто пытаюсь добиться результата, что могу редактировать файлы через FTP после того, как PHP переместил их для меня.
Надеюсь, я был достаточно ясен. Это меня сейчас озадачивает, поэтому любая помощь приветствуется :)
Tom
редактирование:
Весь процесс выглядит следующим образом:
mkdir($root_dir, 0777);
mkdir($images_dir, 0777);
if (!copy($orig_logo, $new_logo))
{
echo "failed to copy $orig_logo...";
}
// see function above for details on set_permissions...
$this->set_permissions($new_logo);
}
(все пути тоже правильные)
1024 * редактировать *:
Файл перед входом через терминал имеет следующие разрешения:
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
Файл после входа и изменения:
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
Система представляет собой систему управления контентом, которая позволяет редактировать и удалять файлы через область администратора, и, как ни странно, это работает хорошо. Кажется, что файлы каким-то образом заблокированы от кого-либо еще, кроме Apache ... но информация о файле предполагает иное. Странно ...