Как настроить виртуальные хосты 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)