Как можно добавить персонализированную директорию в роли виртуального хоста в веб-сервер Apache, напр., для PhpMyAdmin?
Все знают как в Apache настраиваются виртуальные хосты для сайтов, но как быть не с доменом а директорией? Как в Apache добавить определённую директорию в качестве виртуального хоста, чтобы, напр., на запрос по URL «http://255.255.255.255/phpmyadmin/» отдавалось содержимое директории «/media/my/web/PhpMyAdmin»? Т.е., если нет желания вешать, напр., тот же PhpMyAdmin на определённый виртуальный хост, а просто хочется получать к нему доступ, набрав адрес сервера и запросив на нём определённую директорию.
Если устанавливаете PhpMyAdmin из репозитория, то к нему в комплекте идёт конфиг файл для настройки веб-сервера Apache. Его можно найти по запросу «phpmyadmin apache config». А как быть, если всё делаете вручную?
Решается такая ситуация директивой alias
модуля «mod_alias» для Apache. Обычно этот очень нужный модуль идёт в комплекте с веб-сервером Apache и уже подключен к нему. Найти подробную информацию по модулю и этой директиве можно по запросу «alias directive apache».
Надо настроить необходимую директорию при помощи секции Directory
, и добавить алиас (адрес) на эту директорию директивой alias
модуля «mod_alias». Может понадобится модуль «mod_dir» (есть в комплекте). Как всё это настроить описываю ниже с комментариями.
Пишем всё это либо в главном файле настроек Apache, что не рекомендуется, либо в любом из файлов (существующих или новосозданном) виртуальных хостов, которые подключаются к главному файлу настроек директивой Include
.
# Выставляем настройки web-сервера для определённой директории <Directory "/home/web_server/sites/phpMyAdmin"> AllowOverride All Options +FollowSymlinks -Indexes <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule> # New directive needed in Apache 2.4.3: Require all granted # Разрешить доступ к директории всем Order allow,deny Allow from all # Разрешить доступ к директории только с указанных IP-адресов Order Deny,Allow Deny from all Allow from 255.255.255.255 </Directory> <IfModule mod_alias.c> # Главное! Направляем определённый URL-алиас на конкретную директорию на сервере Alias /phpmyadmin/ "/home/web_server/sites/phpMyAdmin/" </IfModule>
В результате PhpMyAdmin будет по следующему URL: «http://255.255.255.255/phpmyadmin/», или так, если Apache находится, напр., на другом сетевом порте: «http://255.255.255.255:8080/phpmyadmin/», где «255.255.255.255» — IP-адрес веб-сервера, «8080» — номер сетевого порта, «phpmyadmin» — алиас заданный первым параметром в директиве Alias
.
Все необходимые данные замените под себя. Перезапустите Apache и всё.
Ссылки
- https://httpd.apache.org/docs/current/mod/mod_alias.html
- https://httpd.apache.org/docs/current/mod/mod_dir.html
- http://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_lamp/phpmyadmin
- https://wiki.archlinux.org/index.php/PhpMyAdmin_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
- http://askubuntu.com/questions/92069/how-to-add-custom-directory-e-g-phpmyadmin
- https://wiki.archlinux.org/index.php/PhpMyAdmin_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)