我有一个简单的 httpd.conf,它正在运行
<VirtualHost *>
AddDefaultCharset UTF-8
DocumentRoot "/opt/rt4/share/html"
<Location />
Order allow,deny
Allow from all
SetHandler modperl
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /opt/rt4/sbin/rt-server
</Location>
<Perl>
use Plack::Handler::Apache2;
Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
</Perl>
</VirtualHost>
当我连接到 MyDomain.dynamicDNSServer.TLD 时,我可以正常加载我的 RT。
但由于我希望它是 rt.MyDomain.dynamicDNSServer.TLD,因此我将其设置为完全相同的值,只是我让它
<VirtualHost rt.MyDomain.dynamicDNSServer.TLD>
现在,当我重新启动 Apache2 时,它显示“没有与主机名关联的地址:无法解析主机名 rt.MyDomain.dynamicDNSServer.TLD——忽略!”
我该怎么做?我无法在主机中为其分配静态 IP,因为每当我的路由器获取新 IP 时,它就会更改。
答案1
首先,确保你有一个特定子域名 dyndns 条目或通配符 dyndns 条目为您的 ip。这意味着除此之外,MyDomain.dynamicDNSServer.TLD
还必须*.MyDomain.dynamicDNSServer.TLD
至少rt.MyDomain.dynamicDNSServer.TLD
解析到您的动态 ip。如果您没有上述任何一项,则无法使用子域特定的 apache 配置。
在 Apache 中,子域名是通过ServerName
而不是使用<VirtualHost>
指令来指定的(请参阅文档了解更多信息)。
以下内容适用于您的子域名:
<VirtualHost *>
ServerName rt.MyDomain.dynamicDNSServer.TLD
AddDefaultCharset UTF-8
DocumentRoot "/opt/rt4/share/html"
...
</VirtualHost>