再把上面这段排程存盘,就用 cron.jobs 为档名。把它加到排程(crontab cron.jobs)就解决了。现在从内部网络看来一切服务似乎没有问题,但是当您从网际网 路浏览虚拟主机的网站时,您将会发现所有虚拟主机的网页都变成与主网站相同的网页 了。怎么办? 由于 Apache 的 NameBase 虚拟主机只监听设定文件指定 NameVirtualHost 的 IP 地址,也就是说每当 ADSL 的 IP 变动时,您就要修改设定文件的 IP 地址然后重新激活 网站服务。 这工作也可以用排程来做,为了文字剖析语言程序的执行速度考量,我们先把虚拟 主机的设定文件部份另存新档,再从 Apache 的主设定档案 (/etc/httpd/conf/httpd.conf)中使用加载的方式 Include conf/vhosts.conf 进来。 底下是虚拟主机的设定文件(vhosts.conf)范例:
# If you want to use name-based virtual hosts you need to define at # least one IP address (and port number) for them. # NameVirtualHost 172.16.0.66 # ################# Named VirtualHosts ServerAdmin root@dyn.hn.org ServerName http://www.dyn.hn.org DocumentRoot /var/www/Html # ErrorLog logs/host.some_domain.com-error_log # CustomLog logs/host.some_domain.com-access_log common
名称服务器的情况也极为类似,每当工作排程变动虚拟主机的 IP 地址之后,网站 的服务已重新加载,您的 DNS 解析内部网络虚拟主机地址,已经与虚拟主机设定文件的 IP 地址不同,从内部网络看来,所有虚拟主机的网页又变成与主网站相同的网页了。 怎么办? 为了内部网络与网际网络都能够正确浏览虚拟主机网页,名称服务器的设定当然也 要动态更新,底下是更新之前的内部网络名称服务器激活文件(/etc/named.conf)范例:
options { Directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "dyn.hn.org" IN { type master; file "named.hosts.ns"; }; zone "0.16.172.in-addr.arpa" IN { type master; file "named.rev.ns"; };
@ IN SOA dyn.hn.org. root.dyn.hn.org. ( 2001010100 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; EXPire 86400 ) ; Minimum IN NS dns.dyn.hn.org. IN MX 0 mail.dyn.hn.org. dns IN A 172.16.0.66 www IN A 172.16.0.66 imap IN A 172.16.0.66 mail IN A 172.16.0.66 home IN A 172.16.0.66