Userdir, он же mod_userdir - модуль Apache, который позволяет пользователям размещать материалы на сайте, без предоставления доступа к директориям Web-сервера. Веб-директория пользователя размещается в его домашнем каталоге, по умолчанию это папка public_html.
В данный момент, этот модуль используется крайне редко. В своей практике я использую данный модуль при разработке/тестировании Web-проектов на тестовой виртуальной машине.
Например, в связке с FTP-сервером получается следующее. При создании пользователя test_user - я получаю удаленный доступ к его каталогу по FTP-протоколу и доступ по HTTP к директории public_html, что для меня является удобным при использовании IDE Netbeans, который после каждого изменения файлов проекта выгружает их на Веб-сервер.
Далее я покажу, как это все настраивается в Netbeans и выглядит в связке. На установке и настройке FTP-сервера я останавливаться не буду, по скольку делал это ранее. Установка Proftpd на Ubuntu
1. Настройка и включение Userdir
В установленном Apache 2.4 данный модуль присутствует, но по умолчанию он отключен.
Включаем его
sudo a2enmod userdir
sudo service apache2 restart
Файл конфигурации модуля находится /etc/apache2/mods-available/userdir.conf
Для того, чтобы работали PHP-скрипты приводим его к следующему виду.
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec FollowSymLinks
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
php_admin_flag engine On
</Directory>
</IfModule>
После завершения редактирования и сохранения даем команду на перезапуск Apache
sudo service apache2 restart
На этом настройка закончена и Вы можете проверить работу
Для существующего пользователя необходимо предварительно создать директорию public_html в его домашнем каталоге
mkdir ~/public_html
и для проверки работы файл index.php
echo "<?php php_info(); ?>" > ~/public_html/index.php
После этого Вы можете зайти через браузер по адресу http://10.10.10.10/~user/ ,
где
- 10.10.10.10 - IP-адрес вашего сервера,
- user - имя пользователя.
Для автоматизации добавления пользователя, создания директории public_html, пользователя и БД MySQL я набросал bash-скрипт для Ubuntu, скачать можете по ссылке
https://drive.google.com/file/d/1wyx9wC6_IVyFSIf5wnFZVsVSxUdYabeM/view?usp=sharing
2. Настройка NetBeans
Для каждого проекта я создаю отдельного пользователя при помощи скрипта, ссылку на который я привел выше. Он обеспечивает создание пользователя в системе и базе данных Mysql, например, при создании пользователя wordpress с паролем wppasswd, будет создано:
- Пользователь wordpress с паролем wppasswd
- Обеспечен доступ по FTP в его домашний каталог
- Доступ по HTTP к пользовательской директории public_html
- Создана база данных wordpress
- Создан пользователь для доступа к MySQL wordpress с паролем wppasswd
Для меня данные условия существенно облегчают работу над проектом.
Ниже я привожу скриншоты с примером настройки удаленного подключения к серверу и настройки проекта.
Пример настройки подключения Nebeans по FTP
В случае возникновения вопросов, задавайте их в комментариях
Использованные материалы:
Логотип взят с https://www.codevoila.com/post/34/enable-apache2-userdir
Apache Module mod_userdir https://httpd.apache.org/docs/2.4/mod/mod_userdir.html
Per-user web directories https://httpd.apache.org/docs/2.4/howto/public_html.html
Комментариев нет:
Отправить комментарий