Щоб створити субдомени, вам доведеться переконатися в кількох речах:
DNS
Щоб інші могли дістатися test.my.address.com, вони спочатку повинні мати змогу вирішити це ім'я за IP-адресою вашої віртуальної машини. Як це можна зробити?
Те, що ваш друг, швидше за все, вже робив, це створити запис A у address.comзоні, який вказує myна IP-адресу вашого VM.
Все йде нормально. А як же test.my? Можливо, ще немає запису.
Ваш друг також може просто додати *.myдо зони (і вказати на ту саму IP-адресу). Тоді весь запит something.my.address.comбуде надіслано вашій машині управління. Чудово!
Віртуальні хости Apache
Після того, як ваш VM можна отримати, Apache повинен знати, як обробляти запит. Тут ми використовуємо функцію Virtual Hosts на 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, подивіться на віртуальні хости Apaches: httpd.apache.org/docs/2.2/vhosts