Как создать поддомен на локальном сервере?
Доброй ночи. Прошу помощи, не могу собрать мозги в кучу.
Дано:
Домен www.site.ru с SSL-сертификатом от Cloudflare для хостов *.site.ru и site.ru. В DNS соответственно A-запись site.ru 20.20.20.20.
Локальный web-сервер на IP 10.10.10.10 с поднятым apache2.
Mikrotik со статическим IP 20.20.20.20. С него идет перенаправление с портов 80 и 443 на 10.10.10.10.
В папке /var/www есть 2 папки sitedir1 (основной сайт, который открывается при переходе на site.ru) и sitedir2 (второй сайт, который надо прикрутить к домену sub.site.ru).
Конфиги в /etc/apache2/sites-enable:
site.ru
<VirtualHost *:80> Define root_domain 10.10.10.10 ServerName ${root_domain} Redirect / https://${root_domain} </VirtualHost> <VirtualHost *:443> Define root_domain 10.10.10.10 Define root_path /var/www/sitedir1 ServerName ${root_domain} DocumentRoot ${root_path} SSLEngine on SSLCertificateFile /etc/ssl/cert.pem SSLCertificateKeyFile /etc/ssl/key.pem SSLCertificateChainFile /etc/ssl/origin_ca_rsa_root.pem <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory> </VirtualHost> |
<VirtualHost *:80> Define root_domain 10.10.10.10 ServerName ${root_domain} Redirect / https://${root_domain} </VirtualHost> <VirtualHost *:443> Define root_domain 10.10.10.10 Define root_path /var/www/sitedir1 ServerName ${root_domain} DocumentRoot ${root_path} SSLEngine on SSLCertificateFile /etc/ssl/cert.pem SSLCertificateKeyFile /etc/ssl/key.pem SSLCertificateChainFile /etc/ssl/origin_ca_rsa_root.pem <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory> </VirtualHost>
sub.site.ru
<VirtualHost *:80> Define root_domain 10.10.10.10 ServerName ${root_domain} Redirect / https://${root_domain} </VirtualHost> <VirtualHost *:443> Define root_domain 10.10.10.10 Define root_path /var/www/sitedir2 ServerName ${root_domain} DocumentRoot ${root_path} SSLEngine on SSLCertificateFile /etc/ssl/cert.pem SSLCertificateKeyFile /etc/ssl/key.pem SSLCertificateChainFile /etc/ssl/origin_ca_rsa_root.pem <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory> </VirtualHost> |
<VirtualHost *:80> Define root_domain 10.10.10.10 ServerName ${root_domain} Redirect / https://${root_domain} </VirtualHost> <VirtualHost *:443> Define root_domain 10.10.10.10 Define root_path /var/www/sitedir2 ServerName ${root_domain} DocumentRoot ${root_path} SSLEngine on SSLCertificateFile /etc/ssl/cert.pem SSLCertificateKeyFile /etc/ssl/key.pem SSLCertificateChainFile /etc/ssl/origin_ca_rsa_root.pem <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory> </VirtualHost>
Конфиг /etc/hosts:
10.10.10.10 site.ru
10.10.10.10 sub.site.ru
---
Не могу заставить работать сайт на sub.site.ru. Подскажите правильный алгоритм, пожалуйста.
Дополнительно:
Конфиги нужно бы оформлять тегом code, но оба виртуальных хоста имеет одинаковое имя в ServerName ${root_domain}
Даже не так, там айпи, а должно быть имя хоста site.ru & sub.site.ru соответственно:
Define root_domain site.ru
Возможно после исправления не взлетит, но тогда нужно нормально оформить конфиги для дальнейшего траблшутинга.
- Поправил.
ServerName ${root_domain} - одинаковый, да.
Но как его сделать разным, если IP один? - Денис Давыденко, кого сделать разным?
Уберите define root_domain, пропишите явно
ServerName site.ruв первом конфиги и
ServerName sub.site.ruВо втором.
- akelsey, сделал. 1 сайт открывается, 2 нет.
Не удается получить доступ к сайту.
Не удалось найти IP-адрес сервера: - akelsey, а про кэш ДНС я и забыл. Все получилось, спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания поддомена на локальном сервере вам потребуется выполнить несколько шагов. Пожалуйста, следуйте инструкциям ниже:
1. **Измените файл hosts:**
- Откройте файл hosts на вашем компьютере. В Windows это файл hosts находится в папке C:\Windows\System32\drivers\etc\, а в macOS и Linux - /etc/hosts.
- Добавьте следующую строку в файл hosts, заменив example.com на желаемый поддомен:
```
127.0.0.1 subdomain.example.com
```
2. **Настройте веб-сервер:**
- Откройте конфигурационный файл веб-сервера (например, httpd.conf для Apache).
- Добавьте виртуальный хост для вашего поддомена. Пример конфигурации для Apache:
ServerName subdomain.example.com DocumentRoot "путь_к_папке_проекта"ServerName subdomain.example.com DocumentRoot "путь_к_папке_проекта"
3. **Перезапустите веб-сервер:**
- После внесения изменений в конфигурационные файлы веб-сервера, перезапустите сервер, чтобы изменения вступили в силу.
4. **Проверьте поддомен:**
- Теперь вы можете открыть браузер и ввести адрес subdomain.example.com. Если все настроено правильно, вы увидите свой проект, размещенный на поддомене.
Таким образом, вы создали поддомен на локальном сервере и можете разрабатывать и тестировать свой проект на нем. Не забудьте удалить изменения в файле hosts и конфигурационных файлах веб-сервера после завершения работы с поддоменом.