mkdir(имя_папки) с разрешением 755 в php

У меня есть веб-приложение, размещенное в папке /var/www. Я создаю папку из одного из сценариев PHP веб-приложения. Разрешение по умолчанию для созданной папки drwx------, т.е. 700. Но я хочу, чтобы эта папка имела как минимум 755 разрешений.

До сих пор я пробовал: mkdir($path, 0755) а также chmod($path, 0755) PHP работает, но безуспешно.

Кто-нибудь знает, как решить мою проблему, пожалуйста?

Миллионы благодарностей заранее.

2 ответа

Вы пытались изменить Umask?

Посмотрите здесь: http://nl3.php.net/manual/en/function.umask.php

Самый простой способ это:

$oldmask = umask(0);
chmod($path, 0755);
umask($oldmask)

Так как у вас есть разрешение по умолчанию 700, это означает, что родительский каталог (каталог, в котором вы пытаетесь создать папку) не имеет разрешения rw для владельца группы или других пользователей. Чаще всего работающий демон (httpd) не является владельцем родительской папки и, следовательно, не может изменять каталог.

Проще говоря, скрипт php не имеет доступа для изменения или добавления нового каталога. Вам необходимо изменить разрешение родительской папки, по крайней мере, на drwxrw-rw- (или 0755).

Для этого используйте клиент ssh, cpanel или ftp. Если вы сделаете это с помощью php-скрипта, вы снова столкнетесь с той же проблемой, так как у parent of parent снова будет 0700.;)

Другие вопросы по тегам