Вопрос или проблема
Я пытаюсь установить Moodle на свой веб-сервер, но он не может создать каталог данных moodle, из-за отсутствия прав на запись:
Родительский каталог (/var/www) недоступен для записи. Каталог данных (/var/www/moodledata) не может быть создан установщиком.
Я пытался установить chmod 777 и 666 для каталога www, но это все равно не помогает…
Результат ls -al:
drwxrwsrwx+ 4 apache apache 31 Дек 8 15:49 www
Правка:
Мои права для папки www полностью перепутаны, потому что я ничего не понимаю о правах, может кто-то помочь мне их исправить? Мне также нужно разрешить группе sftp_users доступ к файлам:
ls -al в www:
drwxrwsrwx+ 5 apache sftp_users 48 Дек 8 19:35 www
ls -al внутри www:
drwxrwsrwx+ 5 apache sftp_users 48 Дек 8 19:35 .
drwxr-xr-x. 22 root root 4096 Дек 8 17:29 ..
drwxrwx---. 2 root sftp_users 6 Авг 24 21:12 cgi-bin
drwxrws---+ 3 root sftp_users 35 Дек 8 19:36 html
drwxrwsr-x+ 2 root sftp_users 6 Дек 8 19:35 moodledata
Возможно, selinux блокирует доступ. Проверьте это с помощью команды getenforce. Если результат Enforce, то вам может понадобиться изменить его на Permissive, с помощью команды setenforce 0 или setenforce Permissive. Вы также можете отключить selinux, отредактировав /etc/selinux/config и установив SELINUX = disabled. В этом случае потребуется перезагрузка. Кроме того – является ли каталог ./moodledata каталогом www для moodle или это каталог для хранения файлов? Если во втором случае, лучше всего переместить его за пределы каталога www, в заданный каталог в /, например /moodledata, и затем установить права на этот каталог для apache (или поместить эту папку на отдельный диск или SAN-ресурс или NFS).
Ответ или решение
Установка Moodle может быть проблематичной, если не устранить вопросы, касающиеся разрешений на директории, особенно к моменту создания директории данных Moodle (moodledata
). Описание вашей проблемы указывает на то, что веб-сервер (в данном случае Apache) не может создавать необходимые директории из-за отсутствующих разрешений на запись. Давайте разберем возможные шаги по устранению данной проблемы.
1. Проверка и исправление разрешений
Согласно вашему ls -al
выводу, директория /var/www
имеет достаточные разрешения (drwxrwsrwx+
), что означает, что группы и пользователи имеют право на запись. Тем не менее, вам нужно убедиться, что корректные пользователи и группы имеют доступ. В вашем случае директорией управляет пользователь apache
.
Шаги для изменения разрешений:
-
Проверка владельца директории
Убедитесь, что у вас правильные владельцы и группы:chown -R apache:sftp_users /var/www
-
Обновите разрешения на директорию и файлы:
Лучше всего установить разрешения на775
дляwww
:chmod -R 775 /var/www
-
Полагайтесь на специальные разрешения
setgid
, чтобы новые файлы создавались с теми же разрешениями групп, что и родительская директория:chmod g+s /var/www
2. Проверка SELinux
Еще одной причиной, по которой может возникать ошибка доступа, может быть активированный SELinux. Проверьте его статус командой:
getenforce
Если результат Enforcing
, это значит, что политика SELinux ограничивает доступ. В этом случае вы можете временно изменить режим на Permissive
:
setenforce 0
Для окончательного изменения статуса вам нужно отредактировать конфигурационный файл /etc/selinux/config
и установить SELINUX=disabled
. Не забудьте перезагрузить сервер после изменения этого параметра.
3. Рекомендации по структуре директорий
Мудрым решением будет размещение директории moodledata
вне публичного доступа, чтобы избежать воздействия на безопасность. Рекомендуется переместить её, например, в /opt/moodledata
:
- Создайте директорию
moodledata
:mkdir /opt/moodledata
- Установите правильные разрешения:
chown -R apache:sftp_users /opt/moodledata chmod -R 770 /opt/moodledata
- Убедитесь, что в настройках Moodle указывается правильный путь к директории данных.
4. Подведение итогов
Подводя итоги, убедитесь, что права доступа к директориям настроены корректно, SELinux не блокирует доступ, и директория moodledata
расположена в безопасном месте. Следуя этим шагам, вы должны будет устранить основные проблемы с разрешениями при установке Moodle на ваш сервер.
Если возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!