Как из файла PHP создавать новый файл PHP (или какой либо другой) на диске?
http://ru.php.net/manual/ru/ref.filesystem.php
$s1 = $my->PATH.$my->PATH_PROD;
if( !mkdir($s1) ) echo "<p>not created : ".$s1."</p>";
else {
echo "<p>created : ".$s1."</p>";
chmod ($s1, 0777);
}
$s1 = $my->PATH.$my->PATH_PROD."/test123";
if( !mkdir($s1) ) echo "<p>not created : ".$s1."</p>";
else {
echo "<p>created : ".$s1."</p>";
chmod ($s1, 0777);
}
Выдает:
created : /home/telexruw/somedir/prod
not created : /home/telexruw/somedir/prod/test123
второе сообщение непонятно. Скрипт один, права у него во время выполнения не изменяются. Как написать правильно создание второй директории?
Скрипт работает под пользователем nobody, и файлы и папки, созданные им соответственно принадлежат пользователю nobody, а не вашему unix-пользователю.
А safe_mode запрещает доступ к файлам и папкам, принадлежащих не вашему unix-пользователю. Т.е. при safe_mode создавать папки через mkdir - бесполезно
вообще.
Это один из немногих и самых больших минусов safe_mode.
Проблема эта трудно решаема, но решаема. Например, можно создавать папки из скрипта подстоединяясь на FTP.
почему бы не использовать mod_become или аналоги? это бы раз и навсегда решило множество проблем.
Цитата: |
Ребята, я вам говорю - PHP скоро развалится, это избыточность!
А как из скрипта через ftp создавать файлы?
Можно ли под SafeMode переименовывать файлы? Это бы частично решило проблему создания файлов.
Сейчас у нас уже возможны (из пхп-скриптов) практически любые операции с файлами созданными пхп-скриптами, не смотря на safe_mode. Т.ч. через фтп
создавать обычно ни к чему.
А так - смотрите в документации по пхп.
[Изменено 27.2.2005 от support]
Когда я создаю файл из PHP, он имеет разрешение 644. Будут ли в него писать скрипты (разрешение подходяшее?) ?
PHP-скрипты? смогут
Создаю файл из скрипта примерно с таким кодом:
$fd=fopen("newfile", "a"
fwrite ($fd, $content);
fclose($fd);
он создается, другие скрипты в него могут писать. А потом раз, и уже не могут писать. Пробую менять разрешение на файлы через ftp, но выдается
сообщение, что невозможно изменить атрибуты удаленных файлов.
В чем может быть проблема?
Что значит "раз, и уже не могут" ?
Я ошибся - скрипты в них могут писать, но изменить атрибуты невозможно.
"Раз - и не могут" - тоже ошибся
Это у старого хостера так происходило.
Сейчас атрибуты невозможно изменить с момента создания файлов таким образом. Я так понял это особенность Safe Mode.
Главное, что скритпы могут писать в эти файлы, так что проблему снимаю.
кстати, да, тоже заметил.
у файла созданного скриптом php невозможно изменить права
а также через ftp невозможно заменить созданный файл на закачиваемый с тем же именем
[Изменено 9.3.2005 от Mefisto]
ну так это естественно. Владелец-то файла - apache
чем создавали - тем права и меняйте - php-скриптом
Он умеет изменять права?
Подскажите как, пожалуйста.
php.net/chmod