Создание папки с использованием php в корневой директории показывает ошибку mkdir в ubuntu

718
user698637

Моя проблема заключается в ошибке при попытке создать папку с помощью сценария php в /opt/lampp/htdocs/.

mkdir (): в доступе отказано

Я использую систему Ubuntu и Lampp установлен. В моем приложении мне нужно создать папку /opt/lampp/htdoc/для временного хранения файлов.

Я могу создавать файлы и папки динамически с помощью php-скрипта.

Я проверил владельца и группу своей папки и изменил их на www-data: www-data, как во внутренней папке, но все равно ошибка.

Вот мой код для создания папки:

$old = umask(0);  mkdir($UploadDirectory, 0777,true); umask($old); 

Мой $UploadDirectoryпуть тоже правильный /opt/lampp/htdocs/mydirectory.

Я перепробовал все доступные ответы в StackOverflow, поэтому создаю новый вопрос. Пожалуйста помоги.

0
Проверяли ли вы свою конфигурацию PHP всякий раз, когда установлены `safe_mode` или` basedir`? Где находится сценарий, выполняющий эти команды? Почему вы устанавливаете `umask`? Seth 7 лет назад 0

2 ответа на вопрос

0
Scott-Mc

Поскольку вы работаете в Ubuntu, проверьте AppArmor, так как это, вероятно, мешает вам писать. Вы можете запустить aa-logprof и следовать инструкциям.

0
techhie

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

Решение, которое НЕ работает для меня, но может работать для некоторых людей:

$ old = umask (0); mkdir ("/ path / some_dir /", 0755, true); Umask ($ старый); 

Тот, который работал для меня, хотя и с несколько странным поведением:

$ old = umask (0000); mkdir ("/ var / www / html / somewebsite / images / somefolder / somefolder /", 6640, true); Umask ($ старый); 

Кажется, что созданные папки имеют 640 разрешений.

Похожие вопросы