PHP создать новый каталог с разрешением 777. Как? - PullRequest
0 голосов
/ 10 декабря 2011

В моем коде

$path = 'images/product/'.$pid;
if( ! file_exists($path)) {
    mkdir($path, 0777);
}
...
...

, но когда я набираю

ls -l

в терминале

drwxr-xr-x 2 www-data www-data 4.0K 2011-12-10 19:28 1/

Это разрешение, которое я получаю, но неЯ хочу.

Я хочу разрешить веб-пользователю загружать проект на основе идентификатора продукта (каталога), созданного во время выполнения.

Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Для создания каталогов с разрешениями 777 или любыми разрешениями

$path = 'images/product/'.$pid;
if( ! file_exists($path)) {
    $mask=umask(0);
    mkdir($path, 0777);
    umask($mask);
}

...

1 голос
/ 11 декабря 2011

Это потому, что по умолчанию значение Apache Umask по умолчанию равно 0022.

Поскольку umask должен отозвать разрешение. Пример

default 0777 rwx.rwx.rwx 
umask   0022 ---.-w-.-w-
Final   0755 rwx.r-x.r-x

Есть 2 способа решить эту проблему,

1. Edit /etc/apache2/envvars
   add in **umask** *<permission to be revoke>*
   restart apache
2. add in umask(0000); before the mkdir('mydir', 0777);
...