
Узнайте, как добавить виртуальный хост на веб-сервер Apache. Виртуальные хосты позволяют размещать несколько отдельных веб-сайтов на одном сервере, с отдельным набором каталогов для каждого веб-сайта.
Apache — это популярный и мощный веб-сервер для платформ Linux, который установлен и работает по умолчанию на облачных серверах под управлением CentOS 7 и Ubuntu 14.04. Вы можете добавить столько виртуальных хостов для Apache, сколько может выдержать ваш сервер, исходя из трафика всех веб-сайтов, размещаемых на этом сервере.
Для любого облачного сервера с Plesk виртуальные хосты всегда должны добавляться и управляться через интерфейс Plesk. Смотрите нашу статью Добавление и управление виртуальными хостами на сервере Plesk для получения пошаговых инструкций.
Требования
- Облачный сервер под управлением CentOS 7 или Ubuntu 16.04.
- Установленный и запущенный веб-сервер Apache.
Чтобы проверить состояние Apache на вашем сервере, используйте команду:
- CentOS 7:sudo systemctl status httpd
- Ubuntu 16.04:sudo systemctl status apache2
Если Apache установлен и запущен, вы увидите сообщение, подобное этому:
user@localhost:~# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago
Docs: man:systemd-sysv-generator(8)
Process: 2893 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 50598 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 2916 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/apache2.service
├─ 2934 /usr/sbin/apache2 -k start
├─50628 /usr/sbin/apache2 -k start
├─50629 /usr/sbin/apache2 -k start
├─50630 /usr/sbin/apache2 -k start
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Обратите внимание на строку, которая гласит:
Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago
Это означает, что сервер установлен и работает.
Перезапустите Apache
Каждый раз, когда вы вносите изменения в конфигурационные файлы Apache, необходимо перезапустить Apache, чтобы изменения вступили в силу:
- CentOS 7:sudo systemctl restart httpd
- Ubuntu 16.04:sudo systemctl restart apache2
Каждый веб-сервер Apache имеет сайт по умолчанию. Если вы не добавили файлы на сайт по умолчанию, это будет стандартная «Страница по умолчанию Apache».
Одним из наиболее распространенных симптомов проблемы с Apache является то, что все URL-адреса на сервере указывают на этот сайт по умолчанию. Это может произойти в случае ошибки в конфигурации или если Apache просто нужно перезапустить.
Создание структуры каталогов
Сначала важно создать каталоги. Если Apache ожидает каталоги, но не может их найти, это может привести к поломке веб-сервера Apache, как описано в разделе выше.
Хотя вы можете создать каталоги в любом месте, по общему правилу каталоги для каждого сайта располагаются в каталоге /var/www и начинаются с каталога с именем URL сайта.
Чтобы создать каталоги для сайта example.com, выполните следующие команды:
sudo mkdir /var/www/example.com
sudo mkdir /var/www/example.com/html
Каталог /var/www/example.com/html — это каталог, в котором будут размещаться веб-страницы вашего сайта. Этот каталог известен как «корень документа».
Далее измените права собственности на эти каталоги на пользователя Apache.
- CentOS 7:sudo chown -R apache:apache /var/www/example.com
- Ubuntu 16.04:sudo chown -R www-data:www-data /var/www/example.com
Для того чтобы загрузить файлы сайта по FTP, каталог html должен принадлежать пользователю FTP.
Например, если ваш пользователь входит на FTP с именем пользователя jdoe, команда для изменения владельца на jdoe будет следующей:
- CentOS 7:sudo chown jdoe:jdoe /var/www/example.com/html
- Ubuntu 16.04:sudo chown jdoe:jdoe /var/www/example.com/html
Добавьте индексный файл
Создайте тестовый файл с именем index.html в корне документа сайта:
sudo nano /var/www/example.com/html/index.html
Поместите в этот файл следующее содержимое:
<html>
<head>
<title>Welcome to your new website!</title>
</head>
<body>
<p>Hello, your virtual host is set up correctly.</p>
</body>
</html>
Сохраните и выйдите из файла.
Создайте файл конфигурации Apache
Конфигурационный файл Apache будет содержать все директивы для вашего виртуального хоста. Существует множество конфигураций, которые вы можете внести в этот файл, исходя из ваших конкретных потребностей. Для начала давайте создадим простой файл с основными настройками:
- CentOS 7:sudo nano /etc/httpd/conf.d/example.com.conf
- Ubuntu 16.04:sudo nano /etc/apache2/sites-available/example.com.conf
Поместите следующее содержимое в этот файл:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
</VirtualHost>
Сохраните и выйдите из файла.
Только для Ubuntu 16.04: Создайте симлинк на этот файл командой sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf
Перезапустите Apache, чтобы изменения вступили в силу:
- CentOS 7:sudo systemctl restart httpd
- Ubuntu 16.04:sudo systemctl restart apache2
После того, как Apache завершит перезапуск, зайдите на сайт в браузере. Вы увидите пример индексной страницы.