Введение
Представьте, что вы администрируете университетский сервер. Вы хотите, чтобы у каждого студента был собственный веб-сайт, доступный по URL-адресу вроде university.com/~student1.
Вместо размещения всех файлов в одном общем каталоге Apache предоставляет функцию, которая называется пользовательскими каталогами. Она позволяет каждому пользователю размещать веб-сайт непосредственно в собственном домашнем каталоге, обычно во вложенном каталоге с именем public_html.
Эта функция реже используется на крупных современных рабочих платформах, но она по-прежнему полезна для изучения совместной работы сопоставления URL-адресов, разрешений и веб-содержимого отдельных пользователей.
В этой лабораторной работе вы:
- Включите модуль: активируете в Apache функцию
userdir. - Создадите каталог: настроите каталог
public_htmlв домашнем каталоге. - Настроите разрешения: обеспечите Apache необходимые разрешения для доступа к вашим файлам.
- Проверите результат: откроете персональную страницу с помощью веб-запроса.
Включите модуль Userdir
Apache — модульный сервер, поэтому при необходимости вы можете включать и отключать отдельные функции. Модуль userdir сопоставляет URL-адреса вида ~username с домашним каталогом соответствующего пользователя.
Такая модульная архитектура — одна из характерных особенностей Apache. Многие функции не включены постоянно по умолчанию: вместо этого администратор активирует модули, необходимые для конкретной роли сервера.
Проверьте состояние Apache, чтобы убедиться, что служба запущена:
sudo service apache2 status
Включите модуль userdir с помощью команды a2enmod (Apache 2 Enable Module):
Вспомогательная команда a2enmod является частью принятой в Ubuntu схемы упаковки Apache. Она упрощает управление модулями, создавая необходимые символические ссылки, поэтому вам не приходится вручную изменять все настройки.
sudo a2enmod userdir
Вы должны увидеть сообщение о включении модуля.
Чтобы подтвердить результат, выведите список включённых модулей:
ls /etc/apache2/mods-enabled/ | grep userdir
В выводе должны появиться userdir.conf и userdir.load. Это подтверждает, что модуль активен.
Настройте веб-каталог
Модуль userdir ищет каталог с именем public_html внутри домашнего каталога пользователя. В этой лабораторной работе ваше имя пользователя — labex.
Перейдите в домашний каталог:
cd ~
Создайте каталог public_html:
mkdir ~/public_html
Создайте в этом каталоге простой файл index.html, чтобы проверить работу сайта:
echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html
Теперь необходимо настроить разрешения. По умолчанию домашние каталоги пользователей часто закрыты для других пользователей, поэтому пользователь Apache (www-data) не может войти в них. Apache требуется разрешение на выполнение (x) для вашего домашнего каталога, чтобы получить доступ к находящемуся внутри него каталогу public_html.
Это хороший пример того, что обслуживание веб-содержимого зависит от обычных разрешений файловой системы Linux. Apache может обслуживать только те файлы, к которым ему разрешено пройти по пути и получить доступ для чтения.
Измените разрешения домашнего каталога:
chmod 711 /home/labex
711(rwx--x--x) даёт вам полный контроль, а другим пользователям, включая Apache, позволяет проходить через каталог (разрешение на выполнение), но не позволяет просматривать его содержимое (разрешение на чтение).
Различие между разрешениями на чтение и выполнение для каталогов неочевидно, но важно. Разрешение на выполнение для каталога означает «можно войти в каталог или пройти через него», а разрешение на чтение — «можно вывести его содержимое».
Проверьте разрешения:
ls -ld /home/labex
В конце строки с разрешениями должна присутствовать буква x, указывающая, что проход через каталог разрешён.
Перезапустите службу
После включения модуля или изменения конфигурации необходимо перезапустить Apache, чтобы изменения вступили в силу.
Перезапустите службу Apache:
sudo service apache2 restart
Убедитесь, что Apache успешно перезапустился:
sudo service apache2 status
В состоянии службы должно быть указано active (running).
Проверьте конфигурацию
Теперь, когда всё настроено, проверьте работу персональной веб-страницы.
Формат URL-адреса: http://server_address/~username/. Поскольку запрос выполняется непосредственно на сервере, используйте localhost.
Получите страницу с помощью curl:
curl http://localhost/~labex/
Вы должны увидеть созданное вами HTML-содержимое:
<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>
Если вы получили ошибку 403 Forbidden, ещё раз проверьте разрешения для домашнего каталога (/home/labex) и каталога public_html.
Итоги
В этой лабораторной работе вы успешно настроили персональные веб-каталоги. Вы научились:
- включать модуль Apache
userdir; - создавать каталог
public_htmlи добавлять в него содержимое; - настраивать разрешения каталогов, чтобы предоставить Apache доступ и сохранить безопасность;
- проверять настройку, обращаясь к URL-адресу конкретного пользователя.
Эта функция широко используется в учебных средах и средах общего хостинга, чтобы предоставлять пользователям собственное веб-пространство.



