
Як налаштувати віртуальний хост - XAMPP + Windows / Ubuntu
Як на мене, працювати набагато зручніше, коли для кожного розроблюваного сайту створений віртуальний хост. Коротко розглянемо налаштування хостів в XAMPP в Windows та Linux Ubuntu.
Налаштування віртуального хосту в Windows
Крок 1
Якщо ми створюємо перший віртуальний хост, то треба відкрити файл httpd.conf
(в моєму випадку шлях до нього D:\xampp\apache\conf\httpd.conf
), знайти рядок
Include conf/extra/httpd-vhosts.conf
та розкоментувати його (тобто видалити символ решітки перед рядком). Повторюся, ця дія виконується одноразово, і для налаштування наступних віртуальних хостів вона не потрібна.
Крок 2
Відкриваємо файл httpd-vhosts.conf
, який знаходиться в піддиректорії extra
(знову ж таки, в моєму випадку шлях D:\xampp\apache\conf\extra\httpd-vhosts.conf
) та описуємо наш віртуальний хост. Якщо сайт, що розроляється, буде розташовуватися у теці xampp/htdocs
, то достатньо і мінімальних налаштувань:
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/blog"
ServerName blog.local
</VirtualHost>
де:
DocumentRoot
- місцезнаходження сайтаServerName
- назва сайту (на свій розсуд)
Якщо ж ми хочемо розмістити сайт у будь-якій іншій директорії, то з такими налаштуваннями скоріше за все отримаємо помилку 403:
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
Тому знадобиться дописати ще кілька рядків (припустимо, що сайт знаходиться на диску D в теці web
):
<VirtualHost *:80>
DocumentRoot "D:/web/blog"
ServerName blog.local
<Directory "D:/web/blog/">
Require all granted
</Directory>
</VirtualHost>
Директива Require all granted
в Apache 2.4 аналогічна директиві Allow from all
у попередніх версіях Apache та дозволяє доступ до вказанної директорії.
Є ще один важливий нюанс. Якщо ми захочемо в назві сайта використовувати щось на зразок доменної зони – в прикладі вище local
– її назва не повинна співпадати з реально існуючими зонами. В іншому випадку отримаємо помилку на кшалт «Підключення не захищене» і будемо довго гадати, в чому проблема. Наприклад, я раніше часто використовував .dev
, що зараз вже неприпустимо.
Крок 3
Відкриваємо файл C:\Windows\System32\drivers\etc\hosts
та вставляємо рядок:
127.0.0.1 blog.local
Перезапускаємо XAMPP, вводимо в браузері адресу blog.local
і готово. Трапляється, браузер сприймає нашу адресу як пошуковий запит. В такому випадку просто введемо http://blog.local
. Для створення інших віртуальних хостів треба просто повторити кроки 1 і 2.
Налаштування віртуального хосту в Ubuntu 16.04
За великим рахунком, ми повторимо практично ті ж кроки, що і для Windows, але є свої нюанси.
Крок 1
Відкриваємо термінал та переходимо в режим root
, тобто вводимо команду:
sudo su
і потім свій пароль.
Крок 2
Відредагуємо файл httpd.conf
. Це можно зробити в будь-якому редакторі, я буду використовувати nano
. Виконаємо в терміналі команду:
nano /opt/lamp/etc/httpd.conf
У файлі знайдемо рядок з DocumentRoot
та після </Directory>
допишемо наступне:
<Directory “/YourDirectory/”>
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
де YourDirectory
– шлях до директорії, де будуть знаходитися сайти. Наприклад, /home/serhii/web
. І знову – цей крок потрібен тільки при створенні першого віртуального хосту.
Крок 3
Як і у випадку з Windows, зробимо опис віртуального хосту. Відкриваємо потрібний файл в nano
командою:
nano /opt/lamp/etc/extra/httpd-vhosts.conf
Та вставляємо наступні рядки:
<VirtualHost *:80>
DocumentRoot "/home/serhii/web/blog"
ServerName blog.local
</VirtualHost>
Крок 4
І останнім відредагуємо файл hosts
, для чого виконаємо команду:
nano /etc/hosts
та вставимо наступне:
127.0.0.1 blog.local
Перезавантажуємо XAMPP і можемо починати працювати.
P.S. В описі хосту (крок 2 для Windows та крок 3 для Ubuntu) можемо також прописати й інші директиви, такі як псевдонім сервера, шлях до логів і т.д., про що більш детально можна почитати в документації.