Ну вот и дошла пора более серьезно заняться настройкой своего Apache сервера на рабочей машине.
Так как на моем компе установлена Ubuntu Linux, а установка приложений с помощью менеджера пакетов Synaptic — сплошное удовольствие, то получилось так, что я установил с его помощью Apache и мне хватало его дефолтных установок. Но захотелось мне навести красоту, разместить несколько веб-сайтов и иметь к ним доступ по разным доменным именам.
Итак, имеем задачу:
Настроить несколько веб-сайтов, на локальном сервере Apache2, установленного на рабочей машине с Ubuntu Linux, и чтобы доступ к ним был по адресам, например таким:
- 1й сайт — www.test1.my и test1.my
- 2й сайт — www.test2.my и test2.my
и так далее, в том же духе.
При попытке привести все к красоте, возникло несколько интересных ошибок, которые, надеюсь нелишне описать.
Итак, первое, в Ubuntu состав директории /etc/apache2 немного отличается от привычных директорий настройки Apache в Unix-подобных системах.
1
2
3
4
5
6
7
8
9
|
conf.d/ sites-available/ sites-enabled/ mods-available/ mods-enabled/ apache2.conf envvars httpd.conf ports.conf |
В Ubuntu основным файлом настройки Apache2 является не httpd.conf, а apache2.conf, но тут он играет роль системного файла, в котором собраны основные и самые важные настройки сервера.
А вот файл httpd.conf — пустой и предназначен для добавления дополнительных настроек, он включен в основной файл настройки apache2.conf
В файле envvars описаны переменные среды, необходимые для функционирования Apache-сервера.
В ports.conf вынесены настройки портов на которые можно будет подключиться к серверу или конкретному сайту на нем.
В папке conf.d находятся дополнительные конфигурационные файлы.
Для описания всех доступных сайтов используется папка sites-available в которой расположены файлы с описанием виртуальных хостов — VirtualHosts, опубликованные же сайты находятся в папке sites-enabled в виде ссылок на файлы доступных сайтов из папки sites-available.
Таким же образом в папках mods-available и mods-enabled настраивается доступность модулей используемых сервером.
Разобравшись со структурой файлов и папок, уже можно приступать к настройке. Первым делом создаем новый файл в папке sites-available, с именем хоста, так будет понятнее при просмотре директории.
1
|
#sudo touch test1.my |
после этого с помощью любого доступного текстового редактора добавляем в этот файл следующие строки
1
2
3
4
5
|
<VirtualHost *:80> ServerName test1 ServerAlias test1.my www.test1.my DocumentRoot /var/www/test1.my/www </VirtualHost> |
таким образом можно создать необходимое колличество виртуальных хостов и направить их в нужные директории на винчестере.
Теперь необходимо как-то научить нашу операционную систему распознавать домен .my. Для этого достаточно прописать необходимые строки в файле /etc/hosts, например так:
1
|
127.0.0.1 test1.my www.test1.my |
Так, теперь мы имеем настройку сайта как виртуального хоста (VirtualHost), имеем настроенный доменный адрес, но сайт еще не доступен для просмотра в браузере. А почему? А потому, что для начала необходимо разместить ссылку на VirtualHost в папку sites-enabled, и перечитать конфигурацию сервера Apache. Для создания ссылки можно выполнить такую команду:
1
|
#sudo a2ensite /etc/apache2/sites-available/test1.my |
и перечитаем параметры:
1
|
#sudo /etc/init.d/apache2 reload |
приведеная команда, перечитает параметры настройки сервера без его перезагрузки.
И вот тут мы столкнемся со второй неприятностью, не критической, но неприятной. После перечитки параметров будет выведено информационное сообщение:
Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Что-то некрасиво получается, зачем нам такое. Но, мы помним, что у нас есть файл httpd.conf в котором желательно прописывать дополнительные настройки. Итак, открываем этот файл в текстовом редакторе, не забываем, что это надо делать с правами суперпользователя, и прописываем туда такую строчку
1
|
ServerName имя_вашего_сервера |
сохраняем, закрываем файл и перечитываем параметры настройки:
1
|
#sudo /etc/init.d/apache2 reload |
Сообщение пропало и теперь мы имеем красиво настроенный веб-сервер Apache. Сейчас для добавления новых сайтов достаточно создать файл виртуального хоста, вписать в него параметры настройки для хоста, добавить его в видимые хосты и перечитать параметры. Вот так вот, оказывается, все просто делается в нелегком админском деле.
Больше инфы см. в оригинале на Генеральском чае – http://generaltea.ru/apache2-ubuntu-virtualhosts-servername/