Чтобы иметь возможность создавать субдомены, вам нужно убедиться в нескольких вещах:
DNS
Чтобы другие могли связаться test.my.address.com
, они должны сначала разрешить это имя в IP-адресе вашей виртуальной машины. Как это можно сделать?
Скорее всего, ваш друг уже создал запись A в address.com
зоне, которая указывает my
на IP-адрес вашей виртуальной машины.
Все идет нормально. Но как насчет test.my
? Возможно, еще нет записи.
Ваш друг может просто добавить *.my
в зону (и указать его на тот же IP-адрес). Тогда все запросы something.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
.
Listen
, посмотрите виртуальные хосты Apache