Не могу создать папку с полным разрешением на Ubuntu 14.04

У меня странная проблема на моем VPS с Ubuntu 14.04 в качестве сервера. Я попытался создать каталог с помощью php mkdir, используя код ниже

<?php 
    mkdir("/items/foldername", 0777, true);
?>

Всякий раз, когда я запускаю этот скрипт, папка создается, но с разрешением 755 вместо 777.

Я перепробовал все доступные варианты, которые я вижу, ни один не работает. Мой PHP-скрипт использует www-данные.

Я пробовал следующее

  1. sudo chmod -R 777 items
  2. sudo chmod -R g+s items
  3. я добавил www-data в корневую группу

1 ответ

Решение

Из этого так ответьте:

Ты можешь использовать umask() непосредственно перед вызовом fopen (), но umask не должен использоваться, если вы работаете на многопоточном сервере - он изменит маску для ВСЕХ потоков (например, это изменение на уровне процесса), а не только что вы собираетесь использовать fopen () в.

например

$old = umask(000);
fopen('foo.txt', 'w'); // creates a 0666 file
umask($old) // restore original mask

Однако было бы проще просто выполнить chmod ():

fopen('foo.txt', 'w'); // create a mode 'who cares?' file
chmod('foo.txt', 0666); // set it to 0666
Другие вопросы по тегам