Я настоящий нуб на Ubuntu, но мне пришлось установить его на VPS, чтобы отображать два разных сайта в качестве поддоменов. Один из них - веб-сайт Drupal 8, другой - статический html-сайт (index.html)
Я получил оба веб-сайта на / var / www и думаю, что все настроил правильно на apache2, потому что я добавил два субдомена в файл hosts
для локального доступа и выполнения некоторых тестов, и они работают нормально.
Когда я печатаю old.myaddress.com
или new.myaddress.com
, они загружаются локально. Однако, если я попытаюсь получить доступ через Интернет или с другого компьютера, он всегда будет загружать только Drupal. Почему?
Стоит упомянуть, что я получил домен и настроил субдомены old.myaddress.com
и new.myaddress.com
для перенаправления на один и тот же IP (IP-адрес моего VPS-сервера). Насколько я понимаю, apache должен отправлять пользователя на разные сайты?
Это мои файлы .conf внутри etc/apache2/sites-available
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost.com
ServerName www.myaddress.com
ServerAlias old.myaddress.com
DocumentRoot /var/www/oldwebsite/myaddress.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost.com
ServerName www.myaddress.com
ServerAlias new.myaddress.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Чтобы уточнить, я прошу где отсутствует конфигурация. Если загрузка сайтов локально работает, это все еще может быть apache? Это мой DNS? мой провайдер? Конфигурация Drupal? Я совершенно потерян.
По-видимому, я должен был установить корректный IPv4 и IPv6 к записи A и записать AAAA DNSs моих субдоменов.
Для поставщиков DNS как 1and1 (Ionos) при установке домена или субдомена, он предполагает, что он размещается в их местоположениях, и для привязки его с внешним хостингом, необходимо вручную отредактировать записи A и AAAA для указания на IP сервер.
Могло потенциально быть столько проблем, таким образом, вот несколько вещей, которые можно попробовать:
Файл hosts локально просто говорит Ваш ПК, какого дюйм/с слушать, который должен обычно быть всего 127.0.0.1. При создании пользовательских доменов локально, Вы добавили бы их к хостам, но использование ISP они будут управлять своим собственным файлом hosts. Если у Вас есть абсолютно специализированный VPS, затем просто делают точно, что Вы сделали локально.
Чтобы домены были общедоступны в Интернете, не имеет значения, что Вы делаете в Apache, те домены должны быть зарегистрированы в доменном регистраторе, чтобы смочь направить и найти их. Таким образом, даже если Вы сделали все правильно, если Вы не добавили те субдомены к своей регистрации DNS затем, они не будут доступны в Интернете. Таким образом, если Вы владеете example.com
и Вы зарегистрировали это в ISP, затем также удостоверьтесь, что зарегистрировались subdomain.example.com
и subdomain2.example.com
с тем ISP.
Удостоверьтесь, что Ваша конфигурация Apache сама настроена то же, хосты могли бы быть отлично тем же, но Вы, возможно, забыли позволять, переписывают или некоторое другое разрешение, в этом случае, это могло бы просто полностью игнорировать Ваши .conf настройки файла. Если конфигурацией Apache управляет Ваш ISP, затем удостоверяются, что они даже позволяют Вам делать пользовательские хосты, которые не делает большинство ISPs, иначе необходимо было бы использовать .htaccess файлы для перезаписи на различные сайты внутренне, или необходимо будет управлять этим от консоли DNS.
Удостоверьтесь, что Вы не забыли что-то глупое как создание символьных ссылок на поддерживающий сайты каталог, таким образом, те сайты на самом деле доступны, или перезапуск Вашего сервера Apache.
Я предполагаю, что Ваш домен DNS правильно настроен и new.myaddress.com
и old.myaddress.com
правильно решите к своему IP сервера. Можно проверить что на другой машине с:
nslookup old.myaddress.com
Это нечетно, что Ваша конфигурация работает локально и не удаленно, если эти имена решают к тому же IP. A ping
к каждому адресу заканчивается к тому же IP-адресу, чем nslookup
отчеты?
Другая вещь, ServerName
should't имеют то же значение для нескольких VirtualHost. Можно использовать любого ServerAlias
Вы хотите, пока то же значение используется только однажды. Я удалил бы www.myaddress.com
со старого веб-сайта конфигурация VirtualHost.
<VirtualHost *:80>
ServerAdmin webmaster@localhost.com
ServerName old.myaddress.com
DocumentRoot /var/www/oldwebsite/myaddress.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost.com
ServerName www.myaddress.com
ServerAlias new.myaddress.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>