Вы можете сделать следующее
function makedirs($dirpath, $mode = 0775, $recursive = true) {
$oldMask=umask(002);
$status = is_dir($dirpath) || mkdir($dirpath, $mode, $recursive);
umask($oldMask);
return $status;
}
$dir = 'path/to/folder/'
makedirs($dir, 0775);
Примечание. Хотя вы можете использовать umask(0), чтобы разрешить даже разрешения 777, это не рекомендуется, так как это может создать проблемы с безопасностью.
Изменить
Попробуйте установить систему значений umask для всех пользователей или для себя, чтобы удалить код umask из php. Хотя приведенный выше код будет работать, установка umask в php-скриптах не рекомендуется.
Согласно странице руководства PHP
Избегайте использования этой функции на многопоточных веб-серверах. Лучше изменить права доступа к файлу с помощью chmod() после создания файла. Использование umask() может привести к неожиданному поведению параллельно работающих скриптов и самого веб-сервера, поскольку все они используют один и тот же umask.
Вы можете настроить umask в файле /etc/bashrc или /etc/profile для всех пользователей. По умолчанию в большинстве дистрибутивов Linux для него установлено значение 0022 (022) или 0002 (002). Откройте файл /etc/profile или ~/.bashrc, введите:
# vi /etc/profile
OR
$ vi ~/.bashrc
Добавьте/измените следующую строку, чтобы настроить новый umask: umask 022
Сохраните и закройте файл. Изменения вступят в силу после следующего входа в систему. Все пользователи UNIX могут переопределить системные значения umask по умолчанию в своем файле /etc/profile, файле ~/.profile (оболочка Korn/Bourne), файле ~/.cshrc (оболочка C), ~/.bash_profile (оболочка Bash) или ~/.login файл (определяет среду пользователя при входе в систему).
Источник http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
person
user3425867
schedule
20.04.2016
$dir = 'path/to/folder/' makedirs($dir, 0775)
это неполно, если это то, что вы действительно используете. Если это псевдокод, укажите правильный синтаксис. - person Funk Forty Niner   schedule 20.04.2016$mode = 0775
ведущий нуль, вероятно, рассматривается как восьмеричный, кстати, из-за пользовательской функции. Попробуйте процитировать его и то же самое для внутреннегоmakedirs($dir, 0775)
. - person Funk Forty Niner   schedule 20.04.2016var_dump();
? - person Funk Forty Niner   schedule 20.04.2016