Поиск по сайту:

Как настроить виртуальные хосты Apache в CentOS 6


Статус: устарело

В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.

Причина:

См. вместо этого:

В следующем руководстве DigitalOcean описывается установка веб-сервера Apache на сервере CentOS 7, а также описывается, как настроить файл виртуального хоста:

  • Как установить веб-сервер Apache в CentOS 7

О виртуальных хостах

Виртуальные хосты используются для запуска более одного домена с одного IP-адреса. Это особенно полезно для людей, которым необходимо запустить несколько сайтов с одного виртуального частного сервера. Сайты отображают посетителям различную информацию в зависимости от того, с помощью чего пользователи заходили на сайт. Количество виртуальных хостов, которые можно добавить к VPS, не ограничено.

Настраивать

Шаги, описанные в этом руководстве, требуют наличия у пользователя привилегий root. Вы можете увидеть, как настроить это в начальной настройке сервера на шагах 3 и 4. Кроме того, если я буду ссылаться на пользователя на шаге, я буду использовать имя www. Вы можете реализовать любое имя пользователя, которое вам подходит.

Кроме того, на вашем виртуальном сервере должен быть уже установлен и запущен apache. Если это не так, вы можете загрузить его с помощью этой команды:

sudo yum install httpd

Шаг первый — создайте новый каталог

Первым шагом в создании виртуального хоста является создание каталога, в котором мы будем хранить информацию о новом веб-сайте.

Это расположение будет корневым каталогом вашего документа в виртуальном файле конфигурации Apache позже. Добавляя -p к строке кода, команда автоматически создает всех родителей для нового каталога.

sudo mkdir -p /var/www/example.com/public_html

Вам нужно будет указать действительный одобренный DNS домен или IP-адрес, чтобы проверить, работает ли виртуальный хост. В этом руководстве мы будем использовать example.com в качестве заполнителя для правильного доменного имени.

Однако, если вы хотите использовать неутвержденное доменное имя для тестирования процесса, вы найдете информацию о том, как заставить его работать на вашем локальном компьютере, в шестом шаге.

Шаг второй — предоставление разрешений

Нам нужно предоставить право собственности на каталог пользователю, а не просто хранить его в корневой системе.

 sudo chown -R apache:apache /var/www/example.com/public_html 

Кроме того, важно убедиться, что каждый сможет прочитать наши новые файлы.

 sudo chmod 755 /var/www

Теперь вы все сделали с разрешениями.

Шаг третий — создайте страницу

Нам нужно создать новый файл с именем index.html в нашем каталоге конфигураций.

sudo vi /var/www/example.com/public_html/index.html

Мы можем добавить некоторый текст в файл, чтобы нам было на что смотреть, когда IP-адрес перенаправляется на виртуальный хост.

<html>
  <head>
    <title>www.example.com</title>
  </head>
  <body>
    <h1>Success: You Have Set Up a Virtual Host</h1>
  </body>
</html>

Сохранить и выйти

Шаг четвертый — включите виртуальные хосты

Следующим шагом будет вход в сам конфигурационный файл апача.

sudo vi /etc/httpd/conf/httpd.conf

Есть несколько строк для поиска.

Убедитесь, что ваш текст соответствует тому, что вы видите ниже.

#Listen 12.34.56.78:80
Listen 80

Прокрутите документ в самый низ до раздела «Виртуальные хосты».

NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#    

#    
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
# 
<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
</VirtualHost>

Наиболее важными строками, на которые следует обратить внимание, являются строки, в которых указано NameVirtualHost, Virtual Host, Document Root и Server Name. Давайте возьмем их по одному.

  • Раскомментируйте (удалите знак номера) NameVirtualHost, не внося никаких изменений. Звездочка означает, что любой IP-адрес, проходящий через порт 80, будет виртуальным хостом. Поскольку ваша система, вероятно, имеет только один IP-адрес, это не проблема, однако при желании вы можете заменить звездочку своим IP-адресом.
  • Вы можете оставить остальные числовые метки на месте, пока не дойдете до строки <VirtualHost *:80> . Раскомментируйте все оттуда через <VirtualHost>.
  • Оставьте <VirtualHost *:80> как есть — его данные должны совпадать с данными в разделе NameVirtual Host. Если вы заменили звездочку своим IP-адресом в этом разделе, обязательно сделайте то же самое здесь.
  • Корневой документ — это ключ! Для этого раздела введите расширение нового каталога, созданного на первом этапе. Если корень документа указан неправильно или отсутствует, вы не сможете настроить виртуальный хост.
  • Имя сервера — еще одна важная часть информации, содержащая доменное имя виртуального хоста (например, www.example.com). Убедитесь, что вы указали домен полностью; мы добавим любые альтернативные возможности в следующую строку.
  • ServerAlias — это новая строка в файле конфигурации, которой нет по умолчанию. Его добавление позволит вам перечислить несколько вариантов доменного имени, например, без www в начале.

Остальные строки в этом разделе не требуются для настройки виртуального хоста. Тем не менее, все же полезно знать, что они делают.

  • Администратор сервера запрашивает адрес электронной почты веб-мастера.
  • Журналы ошибок и пользовательские журналы отслеживают любые проблемы с сервером. Журнал ошибок охватывает проблемы, возникающие при обслуживании сервера, а настраиваемый журнал отслеживает запросы сервера. Для этих процессов можно настроить отдельное расположение.
  • Убедитесь, что <VirtualHost> не закомментирован; затем сохраните и выйдите.

Шаг пятый — перезапустите Apache

Мы внесли много изменений в конфигурацию. Однако они не вступят в силу, пока Apache не будет перезапущен.

Сначала остановите все процессы Apache:

sudo apachectl -k stop

Затем снова запустите apache.

sudo /etc/init.d/httpd start

Вы можете увидеть следующую ошибку:

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Сообщение является просто предупреждением, и вы сможете получить доступ к своему виртуальному хосту без каких-либо дальнейших проблем.

Необязательный шаг шесть — настройка локальных хостов

Если вы указали свое доменное имя на IP-адрес вашего виртуального частного сервера, вы можете пропустить этот шаг — вам не нужно настраивать локальные хосты. Ваши виртуальные хосты должны работать. Однако, если вы хотите опробовать новые виртуальные хосты без необходимости подключения к реальному доменному имени, вы можете настроить локальные хосты только на своем компьютере.

Чтобы продолжить этот шаг, вам необходимо знать пароль администратора вашего компьютера, в противном случае вам потребуется использовать фактическое доменное имя для тестирования виртуальных хостов.

Если вы работаете на Mac или Linux, получите доступ к пользователю root (su) на компьютере и откройте файл hosts:

nano /etc/hosts 

Если вы работаете на компьютере с Windows, вы можете найти инструкции по изменению хост-файла на сайте Microsoft.

Вы можете добавить в этот файл сведения о локальных хостах, как показано в примере ниже. Пока эта строка существует, направление вашего браузера, скажем, на example.com даст вам все данные виртуального хоста для соответствующего IP-адреса.

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost

#Virtual Hosts 
12.34.56.789    www.example.com 

Тем не менее, может быть хорошей идеей удалить эти выдуманные адреса из локальной папки hosts, когда вы закончите, чтобы избежать путаницы в будущем.

Шаг седьмой — РЕЗУЛЬТАТЫ: посмотрите на свой виртуальный хост в действии

После того, как вы закончите настройку своего виртуального хоста, вы сможете увидеть, как он выглядит в Интернете. Введите свой IP-адрес в браузере (например, http://12.34.56.789)

Он должен быть чем-то похож на мой handy

Хорошая работа!

Добавление дополнительных виртуальных хостов

Чтобы создать дополнительные виртуальные хосты, вы можете просто повторить описанный выше процесс, стараясь каждый раз настраивать новый корень документа с соответствующим новым доменным именем. Затем просто скопируйте и вставьте новую информацию о виртуальном хосте в файл конфигурации Apache, как показано ниже.

<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /etc/var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
</VirtualHost>
<VirtualHost *:80>
     ServerAdmin webmaster@example.org
     DocumentRoot /var/www/example.org/public_html
     ServerName www.example.org
     ServerAlias example.org
     ErrorLog /var/www/example.org/error.log
     CustomLog /var/www/example.orgrequests.log
</VirtualHost>

Узнать больше

После того, как вы настроили свои виртуальные хосты, вы можете перейти к установке FTP-сервера.