Я искал переполнение стека и Google в течение многих часов и не могу найти ответ. Я нашел вещи, которые связаны, но ничего не работает.
Вот код:
$oldmask = umask(0);
if(!is_dir("play")){
mkdir("play", 0777, true);
chmod("play", 0777);
}
if(!is_dir("play/playTest")){
mkdir("play/playTest", 0777, true);
chmod("play/playTest", 0777);
}
umask($oldmask);
Каталог «play» создан нормально, однако я получаю эту ошибку, когда он пытается создать каталог «play / playTest».
SAFE MODE Restriction in effect. The script whose uid/gid is 178245/178245 is not allowed to access /a/b/c/play owned by uid/gid 25000/25000 in /a/b/c/script.php
Я понимаю, что это ограничение владельца файла из-за безопасного режима, но почему пользователь будет другим, если папка была создана в том же сценарии?
Я пробовал с и без umask и с и без chmod, и многое другое, но ничего не получалось.
Любая помощь будет принята с благодарностью, спасибо.
Этот хакерский обходной путь основан на уязвимости безопасного режима:
(вы можете рекурсивно создавать каталоги, если вы делаете это с использованием FTP)
http://php.net/manual/en/function.mkdir.php#104301
Других решений пока нет …