我有基于名称的托管,让我们称之为my.address.com
。我的朋友有一个“普通”地址,address.com
并给了我一个可以通过SSH访问的虚拟机。
他还使用端口进行了一些魔术操作,现在,在安装Apache之后,我可以/var/www
通过进行访问my.address.com
。
所以,问题是,我怎样才能使像这样的子域test.my.address.com
?
Apache的Listening Directive应该有一些魔术,但是我无法弄清楚。另外,我知道如何使用Apache创建本地可用的站点,但这并不相同。
为了能够创建子域,您必须确保以下几点:
因此,其他人可以访问test.my.address.com
,他们首先必须能够将该名称解析为您的虚拟机的IP地址。那怎么办?
您的朋友最有可能已经做的是在区域中创建一个A记录,该记录address.com
指向my
您的VM的IP地址。
到现在为止还挺好。但是那又如何test.my
呢?它可能还没有条目。
您的朋友也可以简单地添加*.my
到区域中(并将其指向相同的IP地址)。然后,所有对的请求something.my.address.com
将发送到您的VM。伟大的!
一旦可以访问您的VM,Apache必须知道如何处理该请求。这是我们使用Apache HTTP服务器的虚拟主机功能的地方。
我通常在Debian上运行,因此我将在中用示例配置对此进行解释/etc/apache2/sites-available
。让我们在其中有一个文件,test.my.address.com
并在其中填充信息。
<VirtualHost *:80>
ServerName test.my.address.com
ServerAdmin [email protected]
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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句