Настройка виртуального сервера Apache.
Первый шаг, который мы собираемся предпринять, это создать структуру директорий, содержащую данные сайта, которые будут отображаться посетителям. Наш document root (корневой каталог - директория верхнего уровня, которую просматривает Apache в поисках контента для отображения) будет настроен на использование директорий внутри директории /var/www. Здесь мы создадим директории для обоих виртуальных хостов, которые мы планируем сделать.
В каждой из этих директорий мы создадим вложенную директорию public_html, которая будет содержать реальные файлы. Это дает нам некоторую гибкость в плане хранения контента.
Теперь у нас есть структура директорий для наших файлов, но владелец этих директорий - root-пользователь. Если мы хотим, чтобы наши обычные пользователи могли изменять файлы в наших веб-директориях, мы можем изменить их владельца следующим образом:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Переменная $USER содержит имя пользователя, под которым вы залогинены в текущий момент. Теперь текущий пользователь владеет директориями public_html, в которых мы будем хранить контент.
Нам так же необходимо немного отредактировать права доступа, чтобы убедиться, что доступ на чтение разрешен к общей веб-директории и всем файлам и папкам, содержащимся в ней. Это необходимо для того, чтобы страницы сайта отображались корректно:
sudo chmod -R 755 /var/www
Теперь ваш веб-сервер должен иметь разрешения, необходимые для отображения контента. Кроме того, теперь ваш пользователь имеет возможность создавать контент в необходимых директорий.
Наша структура директорий готова. Давайте создадим какой-нибудь контент для отображения посетителям наших сайтов.
Мы делаем это просто для демонстрации, потому страницы будет очень простыми. Мы собираемся создать по странице index.html для каждого сайта.
Давайте начнем с example.com. Мы можем создать и открыть файл index.html в редакторе, введя команду:
nano /var/www/example.com/public_html/index.html
В этом файле создайте простой HTML-документ, который показывает, к какому сайту он относится. Наш файл выглядит следующим образом:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
Когда закончите, сохраните и закройте файл.
Вы может скопировать файл, чтобы использовать его как основу для второго сайта:
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
После этого вы можете открыть файл и исправить его содержимое:
nano /var/www/test.com/public_html/index.html
<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body>
<h1>Success! The test.com virtual host is working!</h1>
</body>
</html>
Сохраните и закройте этот файл. Теперь у вас есть страницы, необходимые для проверки конфигурации виртуальных хостов.
Файлы виртуальных хостов задают их конфигурацию, и определяют, как именно веб-сервер Apache будет отвечать на запросы к разным доменам.
По умолчанию, Apache имеет файл виртуального хоста 000-default.conf, который мы можем использовать в качестве отправной точки. Мы собираемся скопировать его, чтобы создать файлы виртуального хоста для каждого из наших доменов.
Мы начнем с одного домена, сконфигурируем его, скопируем для другого домена, и затем снова сделаем необходимые правки. Конфигурация Ubuntu по-умолчанию требует, чтобы каждый файл виртуального хоста заканчивался расширением .conf.
Создание файла первого виртуального хоста
Начнем с копирования файла для первого домена:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Откройте новый файл в редакторе с root-правами:
sudo nano /etc/apache2/sites-available/example.com.conf
Файл будет похож на этот:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Как видите, файл совсем небольшой. Мы поправим его для нашего первого домена и добавим некоторые новые директивы. Эта секция конфигурации виртуального хоста относится к любым запросам, которые сделаны по 80 порту (порт по умолчанию для HTTP).
Прежде всего, мы должны изменить директиву ServerAdmin на адрес электронной почты, на который администратор сайта будет получать электронные письма.
ServerAdmin admin@example.com
Затем мы должны добавить две новые директивы. Первая, ServerName, устанавливает основной домен, который должен соответствовать названию виртуального хоста. Это должно быть ваше доменное имя. Вторая, ServerAlias, определяет другие имена, которые должны интерпретироваться так, как будто это основной домен. Это удобно для использования дополнительных доменных имен, например, с использованием www:
ServerName example.com
ServerAlias www.example.com
Единственная вещь, которую нам осталось изменить в базовом файле виртуального хоста, это расположение корневого каталога этого домена. Мы уже создали нужную директорию, так что нам осталось изменить директиву DocumentRoot так, чтобы она ссылалась на созданную нами директорию:
DocumentRoot /var/www/example.com/public_html
Теперь наш файл виртуального хоста должен выглядеть следующим образом:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните и закройте файл.
Копирование первого виртуального хоста и настройка для второго домена. Теперь, когда у нас есть готовый первый виртуальный хост, мы можем создать второй, скопировав файл и поправив его там, где это необходимо.
Начните с копирования:
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
Откройте новый файл в редакторе с правами root-пользователя:
sudo nano /etc/apache2/sites-available/test.com.conf
Теперь вам нужно поправить всю необходимую информацию для второго домена. Когда вы закончите, файл должен выглядеть похожим образом:
<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните и закройте файл после внесения правок.
Теперь, когда мы создали файлы наших виртуальных хостов, мы должны их включить. Apache содержит инструменты, позволяющие нам это сделать. Мы можем использовать утилиту a2ensite для включения каждого из наших сайтов следующим образом:
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
После завершения необходимо перезапустить Apache, чтобы изменения вступили в силу:
sudo service apache2 restart
Если до этого вы использовали не реальные доменные имена, которыми вы владеете, а тестовые, вы можете протестировать работоспособность виртуальных хостов, временно изменив файл hosts на вашем локальном компьютере.
Это позволит перехватывать любой запрос к доменам, которые вы настроили и перенаправлять его на ваш VPS сервер так, как это сделала бы система DNS в случае использования реально зарегистрированных доменов. Это будет работать только с вашего локального компьютера и используется только для тестирования. Убедитесь, что дальнейшие шаги вы будете проделывать на вашем локальном компьютере, а не на VPS сервере. Вам необходимо знать пароль администратора или быть членом группы администраторов.
Вам необходимо добавить в файл публичный IP-адрес вашего VPS сервера и, следом, доменное имя, по которому вы хотите обращаться к этому VPS. Для доменов, используемых в этом руководстве, предположим, что IP-адрес нашего VPS 111.111.111.111. В этом случае мы можем добавить следующие строки в конец файла hosts:
127.0.0.1 localhost
127.0.1.1 guest-desktop
111.111.111.111 example.com
111.111.111.111 test.com
В результате этого любые запросы к example.com и test.com с нашего компьютера будут перенаправляться на наш сервер по адресу 111.111.111.111. Это удобно для проверки правильности настройки наших виртуальных хостов для случая, когда мы не являемся реальными владельцами этих доменных имен. Сохраните и закройте файл.
Теперь, когда ваши виртуальные хосты сконфигурированы, вы можете легко протестировать работоспособность, перейдя в браузере по ранее настроенным адресам.
Заключение
Если вы следовали инструкциям, теперь у вас должен быть один сервер, работающий с двумя разными доменными именами.
Apache может работать с любым количеством доменных имен, так что можете добавлять новые сайты до тех пор, пока ваш сервер справляется с нагрузкой.
Дата добавления: 2016-04-23; просмотров: 1025;