Добавление виртуального хоста Apache на CentOS 7 и Ubuntu 16.04

Узнайте, как добавить виртуальный хост на веб-сервер 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 завершит перезапуск, зайдите на сайт в браузере. Вы увидите пример индексной страницы.

Оцените статью
cdelat.ru
Добавить комментарий