Виртуальные хосты позволяют запускать несколько веб-сайтов на одном сервере, используя разные доменные имена. В этой статье рассмотрим настройку виртуальных хостов в XAMPP на Debian.
Шаг 1: Установка XAMPP
Если XAMPP ещё не установлен:
wget https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run
chmod +x xampp-linux-x64-8.2.12-0-installer.run
sudo ./xampp-linux-x64-8.2.12-0-installer.run
Шаг 2: Создание директорий для сайтов
sudo mkdir -p /opt/lampp/htdocs/site1
sudo mkdir -p /opt/lampp/htdocs/site2
Создайте тестовые файлы:
echo '<h1>Site 1</h1>' | sudo tee /opt/lampp/htdocs/site1/index.html
echo '<h1>Site 2</h1>' | sudo tee /opt/lampp/htdocs/site2/index.html
Шаг 3: Настройка виртуальных хостов
Откройте конфигурационный файл Apache:
sudo nano /opt/lampp/etc/extra/httpd-vhosts.conf
Добавьте конфигурацию:
<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs/site1"
ServerName site1.local
<Directory "/opt/lampp/htdocs/site1">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs/site2"
ServerName site2.local
<Directory "/opt/lampp/htdocs/site2">
Require all granted
</Directory>
</VirtualHost>
Шаг 4: Включение виртуальных хостов
Откройте основной конфиг Apache:
sudo nano /opt/lampp/etc/httpd.conf
Найдите и раскомментируйте строку:
Include etc/extra/httpd-vhosts.conf
Шаг 5: Настройка hosts файла
Добавьте домены в файл hosts:
sudo nano /etc/hosts
Добавьте строки:
127.0.0.1 site1.local
127.0.0.1 site2.local
Шаг 6: Перезапуск XAMPP
sudo /opt/lampp/lampp restart
Проверка
Откройте браузер и перейдите по адресам:
http://site1.localhttp://site2.local
Дополнительно: HTTPS виртуальные хосты
Для SSL добавьте в httpd-vhosts.conf:
<VirtualHost *:443>
DocumentRoot "/opt/lampp/htdocs/site1"
ServerName site1.local
SSLEngine on
SSLCertificateFile "/opt/lampp/etc/ssl/server.crt"
SSLCertificateKeyFile "/opt/lampp/etc/ssl/server.key"
</VirtualHost>
Полезные команды
sudo /opt/lampp/lampp start # Запуск
sudo /opt/lampp/lampp stop # Остановка
sudo /opt/lampp/lampp restart # Перезапуск
sudo /opt/lampp/lampp status # Статус