Дело в том, что PHP-сценарии, запущенные модулем mod_php, выполняются от имени пользователя apache. Соответственно, если на чтение/модификацию не были выставлены разрешения для всех (достаточно 666 - для файлов, 777 - для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю будет запрещена (при доступе по SSH, по FTP).
Для того, чтобы проблема не возникала - нужно для такого каталога (файла) установить права, достаточные для модификации файлов, посредством функции chmod.
Сделать это рекурсивно можно, исполнив PHP-сценарий:
<?php
function chmod_R($path, $perm) {
$handle = opendir($path);
while ( false !== ($file = readdir($handle)) ) {
if ( ($file !== ".") && ($file !== "..") ) {
if ( is_file($file) ) {
chmod($path . "/" . $file, $perm);
}
else {
chmod($path . "/" . $file, $perm);
chmod_R($path . "/" . $file, $perm);
}
}
}
closedir($handle);
}
$path = $_SERVER["QUERY_STRING"];
if ( $path{0} != "/" ) {
$path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;
}
chmod_R($path, 0777);
chmod($path, 0777);
echo $path;
?>
Разместите этот файл на хостинге, в директории, доступной веб-серверу, например, как httpdocs/chmod.php
Вызывать скрипт нужно так:
http://ваш_домен/chmod.php?path_to_problem_dir
path_to_problem_dir - путь, относительно DocumentRoot для данного домена (httpdocs/ в нашем примере).