Apache2: Виртуальные хосты создание нескольких сайтов на Ubuntu Server

Виртуальные хосты (virtualhost) в ubuntu настройка на веб сервере apache2. Настройка этой функции позволит держать несколько сайтов на одном компьютере. Для настройки потребуется виртуальная машина (VPS)  или же выделенный сервер (VDS) с установленной ubuntu server,  а также установленным apache. Запускаем putty, авторизуемся и начинаем создавать виртуальные хосты на apache2 следуя написанной ниже инструкции.

Виртуальные хосты на веб сервере Apache2: настройка

Для удобства переходим в дирректорию apache

cd /etc/apache2/sites-available/

создаем файл для первого виртуального хоста.К примеру будем использовать site1.local, второй сайт будет site2.local, но о нем чуть позже

sudo touch sites1.local

Теперь открываем первый virtualhost для сайта  sites1.local

sudo nano sites1.local

В нем прописываем следующий текст

  Mypaint программа для работы с графикой на Ubuntu
[pwal id=»29171000″ description=»»] 

ServerName site1.local
ServerAlias site1.local www.site1.local
DocumentRoot /var/site1.local/www/

AllowOverride All

Нажимаем CTRL+O, чтобы сохранить изменения и CTRL+X, чтобы закрыть текстовый редактор nano, консольный текстовый редактор в Ubuntu. Теперь скопируем файл и отредактируем его, чтобы создать виртуальный хост на apache2 для второго сайта  site2.local

sudo cp sites1.local sites2.local
sudo nano sites2.local
ServerName site2.local
ServerAlias site2.local www.site2.local
DocumentRoot /var/site2.local/www/

AllowOverride All


Apache2: Виртуальные хосты

где
servername — навание сайта
ServerAlias — синонимы сайта, то есть можно обращаться как с www так и без www
DocumentRoot — расположение файлов сайта
  — описание разрешений для файлов и каталогов сайта

Далее идем в каталог /var и создаем дирректории для сайтов

sudo mkdir -p ./site1.local/www
sudo mkdir -p ./site2.local/www

Ключ -p для mkdir нужен для рекурсивного создания каталогов, то есть сначала будет создан каталог site1.local, потом сразу каталог www.

  Приложения для работы с графикой на Ubuntu

Теперь создаем 2 тестовые странички в каждом из каталогов www для каждого сайта. Для первого сайта

sudo touch /var/site1.local/www/index.php
sudo nano /var/site1.local/www/index.php

в index.php пишем

Первый virtualhost для site1.local"
?>

далее копируем файл для site2.local

sudo cp /var/site1.local/www/index.php /var/site2.local/www/index.php
sudo nano /var/site2.local/www/index.php

в файл запихиваем немного другой текст, чтобы видно было различия

Второй virtualhost для site2.local"
?>

Apache2: Виртуальные хосты

Далее делаем сайты доступными, выполнив  команды

sudo a2ensite site1.local
sudo a2ensite site2.local

и перезапускаем apache

sudo service apache2 restart
или
sudo /etc/init.d/apache2 restart
кому как нравится )))

Теперь можно проверять. Я запускаю виртуальную машину с windows xp. Так как у нас не установлен dns-сервер, то необходимо прописать ip адреса сайтов в файле C:\WINDOWS\system32\drivers\etc\hosts

Открываем его в текстовом редакторе и в конец дописываем строки

192.168.3.1   site1.local
192.168.3.1   site2.local

192.168.3.1 — адрес вашего веб-сервера, если у вас другой, то указываете его.

Запускаем браузер и набираем адреса сайтов, как видно — все работает на сервере настроен виртуальный хост на apache2

Apache2: Виртуальные хосты Apache2: Виртуальные хосты

2 Комментария (ев)

  1. и только одно у вас копипастеров не ясно : как перейти в cd /etc/apache2/sites-available/ если её НЕТУ ?

    • Так ты сначала установи apache))) и появится
      sudo apt install apache2, а вообще тут весь код апача сьел wordpress. Да и зачем этот тяжелый сервер устанавливать если можно установить легкий и гибкий в настройке nginx, а если уж так приспичило но хочется чтобы апач был и нагрузка с его стороны меньше была, то лучше использовать связку apache2+nginx proxy — где APACHE2 обрабатывает динамику, а nginx работает со статикой. в этом случае нагрузка на vps будет меньше в 2 раза. Повторюсь, монстроузорный apach2 вообще можно не использовать, а установить популярный нынче, легкий и быстрый nginx. Об установке и настройке nginx на ubuntu я писал тут

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here