Чтобы иметь возможность создавать субдомены, вам нужно убедиться в нескольких вещах:
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
.