Я не большой специалист в UNIX серверах и уж тем более в настройках Web-серверов на UNIX. Но по долгу службы приходится с ними иметь общение. На днях для экспериментов приобрел VPS на Masterhost и решил для начала запустить нескольких сайтов на нём. Задача оказалась не сложной, но все равно я немного с ней помучался.
Заказал я самый простой сервер на Ubuntu Linux 16.04. Разворачивал я его с предустановкой LAMP (Linux+Apache+MySQL+PHP) — т.е. с необходимым программным обеспечением для запуска своего Web-сервера.
После развертывания VPS сразу будет работать и Web-сервис. И даже по IP сервера будет открываться phpinfo() — файл index.php с вызовом этой функции будет лежать в папке /var/www/html/. Так что остается делом техники закинуть в папку нужный сайт и привязать доменное имя к этому VPS. но меня, как уже говорил, интересовала другая тема -я хочу разместить несколько сайтов на этом VPS.
Виртуальные хосты Apache дают возможность пользователям запускать несколько веб-сайтов с одного IP-адреса!
Если вдруг вы взяли сервер без LAMP, то для того, чтобы настроить виртуальные хосты в Apache для размещения нескольких доменов или поддоменов — потребуется сначала установить Apache. Для этого нужно авторизоваться на сервере по SSH протоколу и произвести все настройки там. Masterhost дает возможность подключиться к серверу через web-сессию, или через RDP, но я предпочитаю PuTTY:
Далее используются команды для Ubuntu. Для редактирования используется редактор vi. Прежде чем запускать редактор vi, если вы совсем новичок в Unix, то вам нужно знать несколько основных правил работы с этим редактором.
Команда типа
vi text.txt
— создаст, если его нет, текстовый файл «text.txt» и откроет его пустое содержимое. Если же файл есть — он просто откроет содержимое. Для перехода к редактированию файла — нажмите клавишу «
i
Курсор изменит вид и можно будет вводить текст, или вставлять скопированный текст из буфера. После завершения редактирования файла нужно нажать клавишу Esc и ввести команду
:wq
— для закрытия файла с сохранением. Если вы не хотите сохранять содержимое — введите команду:
:q!
Этих знаний достаточно для дальнейшей настройки web-сервера.
Итак, для установки Apache (если еще не установлен):
apt-get update
apt-get install apache2
Далее нужно изменить основной файл конфигурации Apache (/etc/apache2/apache2.conf) — выполняем команду:
vi /etc/apache2/apache2.conf
и в файле нужно раскомментировать следующую строку:
IncludeOptional sites-enabled/*.conf
Кстати, т.к. у меня Apache был установлен в составе LAMP — в файле apache2.conf мне не пришлось ничего менять.
Теперь создадим 2 виртуальных хоста для, например, следующих двух доменов: pa1.ru и pa2.ru. Для этого в папке /etc/apache2/sites-available/ создадим 2 файла конфигурации.
Первый файл по команде:
vi /etc/apache2/sites-available/pa1.ru.conf
И вставим в него следующий код:
<VirtualHost *:80>
DocumentRoot /var/www/html-pa1.ru
ServerName pa1.ru
ServerAlias www.pa1.ru
<Directory /var/www/html-pa1.ru/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/pa1.ru-error_log
CustomLog /var/log/apache2/pa1.ru-access_log common
</VirtualHost>
Второй файл по команде:
vi /etc/apache2/sites-available/pa2.ru.conf.
И вставим следующий код во второй файл:
<VirtualHost *:80>
DocumentRoot /var/www/html-pa2.ru
ServerName pa2.ru
ServerAlias www.pa2.ru
</VirtualHost>
Теперь нужно активируйте конфигурации pa1.ru.conf и pa2.ru.conf в Apache с помощью следующих команд:
ln -s /etc/apache2/sites-available/pa1.ru.conf /etc/apache2/sites-enabled/pa1.ru.conf
ln -s /etc/apache2/sites-available/pa2.conf /etc/apache2/sites-enabled/pa2.ru.conf
Обязательно нужно перезапустить сервис Apache, чтобы все новые конфигурации начали работать. Для этого запускаем команду:
service apache2 restart
Теперь нужно создать каталоги /var/www/html-pa1.ru и /var/www/html-pa2.ru, и загрузите свои веб-сайты в них.
Все файлы сайта должны быть доступны для чтения веб-сервером, поэтому нужно установить правильного владельца. Для этого выполним следующие команды:
chown www-data:www-data -R /var/www/html-p1.ru
chown www-data:www-data -R /var/www/html-p2.ru
Если Apache, как у меня, ставился в комплекте с LAMP, то нужно заблокировать стандартную конфигурацию в той же папке, куда мы создали новые для сайтов pa1.ru и pa2.ru. Для этого нужно выполнить следующую команду:
sudo a2dissite 000-default.conf
Конечно же, после этого необходимо перезапустить сервис Apache:
sudo service apache2 restart
После чего у меня заработали домены pa1.ru и pa2.ru — естественно у регистратора доменов должна быть прописана запись типа А, ссылающаяся на IP адрес вашего VPS.
Если у вас не удалось запустить сайты по вашим доменам — попробуйте ещё раз пройтись по инструкции сначала.
Удачи!