Самым распространенным веб-сервером, на котором работает большая часть сайтов в интернете, является Apache. Трудно назвать точные цифры серверов, которые работают на Apache, но можно утверждать, что их число больше половины. Apache — абсолютно бесплатный сервер и доступен не только для UNIX систем, но и для OC Windows.
Не секрет, что на одном физическом сервере может работать множество виртуальных веб-серверов. Именно поэтому два сайта с разными доменами могут располагаться на одном сервере. Такой подход дает следующие преимущества:
- экономия денежных средств на закупке серверов;
- экономия IP-адресов, лимит которых уже давно исчерпан. Виртуальные веб-серверы могут иметь как отдельные IP-адреса, так и использовать один IP-адрес, а различаться доменными именами;
- упрощение администрирования и контроля за безопасностью. Куда проще контролировать настройки и безопасность одного сервера, чем нескольких.
Проверяем необходимую конфигурацию
Прежде чем приступать к настройке, хотелось бы отметить, что в данной статье речь пойдет о настройке виртуального хоста на версии apache2. Со второй версии настройки разделены на несколько файлов, в то время, как в версиях ниже они располагались в одном единственном файле httpd.conf.
Во второй версии все конфигурационные файлы веб-сервера располагаются в папке /etc/apache2/, если данной папки у вас нет, вероятно Apache не установлен вовсе. Чтобы установить Apache в Ubuntu можно выполнить следующую команду:
sudo apt-get install apache2
Для наших целей нам потребуются файлы, которые располагаются в папке /etc/apache2/sites-available/. Скорее всего в данном каталоге у вас уже будет располагаться файл вида: 000-default.conf, поэтому его можно взять за основу и просто скопировать. Если же вы удалили данный файл не стоит паниковать чуть ниже будет приведет пример файла со всеми настройками, поэтому вы легко сможете скопировать их себе.
Определяем структуру и добавляем сайт
Для наших целей создадим папку public_html и разместим ее по следующему адресу: /var/www/example.com/public_html. Затем в данной папке разместим файл index.html со следующим содержимым:
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Example</title>
</head>
<body>
<h1>Example site working!</h1>
</body>
</html>
Затем в каталоге /etc/apache2/sites-available/ создадим файл example.com.conf и добавим в него следующие строки:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerAlias www.example.com
ServerName example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- ServerAdmin — email администратора;
- ServerAlias — alias сайта, как в нашем примере создан для поддомена www;
- ServerName — адрес нашего сайта;
- DocumentRoot — папка в которой будут располагаться файлы нашего сайта;
- ErrorLog и CustomLog — местоположение журналов.
Включение виртуального хоста и добавление сайта в файл hosts
Теперь нам необходимо включить только что созданный нами сайт. Для этого у Apache есть встроенная утилита. Просто выполняем команду:
sudo a2ensite example.com.conf
После этого потребуется перезагрузить Apache, сделать это можно следующей командой:
sudo service apache2 restart
Если вы используете не реальное доменное имя, как в нашем случае, то необходимо временно изменить файл /etc/hosts, в котором необходимо добавить запись вида:
127.0.0.1 example.com
Напротив, если же вы производите настройки на реальном сервере с реальным доменным именем, то в файл hosts не надо добавлять никаких записей.