Я пытаюсь использовать команду mkdir в сценарии php для создания каталога на смонтированном жестком диске на Raspberry Pi.
Я создал каталог / mnt / hdd (sudo mkdir / mnt / hdd) и монтирую устройство с помощью команды:
sudo mount /dev/sda1 /mnt/hdd
Мой PHP-скрипт:
<?php
mkdir("/mnt/hdd/storage_1/");
mkdir("/mnt/hdd/storage_2/");
?>
Но когда я запускаю этот скрипт, каталоги не создаются, и у меня есть эти ошибки в /var/log/apache2/error.log:
[Sat Dec 03 18:47:44.590884 2016] [:error] [pid 1295] [client 192.168.1.11:50940] PHP Warning: mkdir(): Permission denied in /home/pi/html/createDir.php on line 2
[Sat Dec 03 18:47:44.591949 2016] [:error] [pid 1295] [client 192.168.1.11:50940] PHP Warning: mkdir(): Permission denied in /home/pi/html/createDir.php on line 3
Вот разрешения для каталога / mnt / hdd:
drwxr-xr-x 2 root root 32K Jan 1 1970 hdd
Мой сервер apache использует конфигурацию по умолчанию (www-data user и group). Существует проблема с правами доступа к папке / mnt / hdd, но я не могу понять это, кто-то может дать мне подсказку?
Как вы сказали, Apache работает в группе www-данных, а папка hdd принадлежит root, поэтому Apache не может создавать каталоги из-за привилегий. Попробуйте
Убедитесь, что все файлы принадлежат группе Apache и пользователю.
chown -R www-data:www-data /path/to/webserver/www
Далее позволили всем членам группы www-data читать и записывать файлы
chmod -R g+rw /path/to/webserver/www
Проблемы, кажется, приходит, когда я монтирую устройство. это работает, когда я монтирую диск следующей командой:
sudo mount /dev/sda1 /mnt/hdd umask=000