Вытягивали мои волосы последние 2 часа на этом, и я уверен, что делаю что-то действительно глупое.
<?php mkdir("blah", 0777); ?>
Это работает через командную строку и создается папка. Но то же самое не работает, когда я пытаюсь запустить его через браузер. Любые проблемы с разрешением файла?
Может быть, при запуске в командной строке сценарий наследует ваши разрешения, но при запуске из браузера это не так?
В этом случае вы хотите, чтобы ваши права на каталоги «записывались» для группы.
Ваш веб-сервер (apache?) Работает как собственный пользователь и не имеет права на запись в каталог, в котором запущен mkdir.
Предоставьте пользователю вашего веб-сервера право писать в каталог либо A), сделав его Владельцем, B) добавив его в группу, если у Группы есть разрешение на запись, либо C) предоставить разрешение на запись всем пользователям (не рекомендуется для большинства настроек).
вы можете попробовать с umask
Когда PHP используется в качестве серверного модуля, umask восстанавливается, когда каждый запрос завершается.
$old = umask(0); mkdir($path,0777); umask($old);