26

У меня есть хостинг на основе имен, давайте назовем его my.address.com . У моего друга есть «простой» адрес address.com и он дал мне виртуальную машину, к которой я могу получить доступ через SSH.

Он также немного поработал с портами, и теперь, после установки Apache, я смог получить доступ к /var/www через my.address.com .

Итак, вопрос в том, как создать поддомен, такой как test.my.address.com?

Должна быть какая-то магия с Директивой Слушания Apache, но я не могу понять это. Также я знаю, как создавать локально доступные сайты с Apache, но это не одно и то же.

1 ответ1

32

Чтобы иметь возможность создавать субдомены, вам нужно убедиться в нескольких вещах:

DNS

Чтобы другие могли связаться с test.my.address.com , они должны сначала разрешить это имя в IP-адресе вашей виртуальной машины. Как это можно сделать?

Что ваш друг , скорее всего , уже сделал, было создать запись A в address.com зоне, что очки my на IP - адрес виртуальной машины.

Все идет нормально. Но как насчет test.my? Возможно, еще нет записи.

Ваш друг также может просто добавить *.my в зону (и указать на тот же IP-адрес). Тогда все запросы к something.my.address.com .my.address.com будут отправлены на вашу виртуальную машину. Большой!

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

Как только ваша виртуальная машина может быть достигнута, Apache должен знать, как обрабатывать запрос. Здесь мы используем функцию виртуальных хостов HTTP-сервера Apache.

Я обычно работаю на Debian, поэтому я объясню это на примере конфигурации в /etc/apache2/sites-available . Давайте создадим там файл с именем test.my.address.com и наполним его информацией.

<VirtualHost *:80>
        ServerName test.my.address.com
        ServerAdmin webmaster@my.address.com

        DocumentRoot /var/www/test.my.address.com/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test.my.address.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/test.my.address.com.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/test.my.address.com.access.log combined
</VirtualHost>

Ключевой настройкой внутри этого файла является директива ServerName. Это сообщает Apache, под каким именем этот сервер должен быть доступен. Дополнительные имена могут быть даны с помощью директивы ServerAlias.

Если вы также используете Debian, не забудьте sudo a2ensite test.my.address.com после создания файла и sudo invoke-rc.d apache2 restart .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .