Не могу создать папку с полным разрешением на Ubuntu 14.04
У меня странная проблема на моем VPS с Ubuntu 14.04 в качестве сервера. Я попытался создать каталог с помощью php mkdir, используя код ниже
<?php
mkdir("/items/foldername", 0777, true);
?>
Всякий раз, когда я запускаю этот скрипт, папка создается, но с разрешением 755 вместо 777.
Я перепробовал все доступные варианты, которые я вижу, ни один не работает. Мой PHP-скрипт использует www-данные.
Я пробовал следующее
sudo chmod -R 777 items
sudo chmod -R g+s items
- я добавил
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