为了能够创建子域,您必须确保以下几点:
域名解析
因此,其他人可以访问test.my.address.com
,他们首先必须能够将该名称解析为您的虚拟机的IP地址。那怎么办?
您的朋友最有可能已经做的是在该区域中创建一个A记录,该记录address.com
指向my
您的VM的IP地址。
到目前为止,一切都很好。但是呢test.my
?它可能还没有条目。
您的朋友也可以简单地添加*.my
到区域中(并将其指向相同的IP地址)。然后,所有对的请求something.my.address.com
将发送到您的VM。大!
Apache虚拟主机
一旦可以访问您的VM,Apache必须知道如何处理该请求。这是我们使用Apache HTTP服务器的虚拟主机功能的地方。
我通常在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
,看看阿帕奇虚拟主机:httpd.apache.org/docs/2.2/vhosts