为虚拟客户创建一个常规 Linux 账户,并包含 home 目录和邮件功能。
虚拟主机实现仍在不断变化。一些补丁程序可以支持虚拟主机。请查看服务器的发行说明以获取更多详细信息。NCSA 1.5 或 Apache 现在包含虚拟补丁程序,并且我被告知 Spinner 支持虚拟主机。
一个虚拟补丁程序支持以下 srm.conf 语法,但是第二种 NCSA 1.5 定义虚拟主机的方法允许更大的灵活性。
SubDocumentRoot www.domain1.com /usr/local/etc/httpd/docs/domain1 SubDocumentRoot www.domain2.com /usr/local/etc/httpd/docs/domain2 |
NCSA 和 Apache 支持以下 httpd.conf 语法
ServerAdmin webmaster@domain1.com DocumentRoot /usr/local/etc/httpda/docs/domain1 ServerName www.domain1.com ErrorLog logs/errors.domain1.com TransferLog logs/access_log.domain1.com |
一旦安装了 IPalias 补丁程序,请将以下内容添加到本地 Web 服务器上的 /etc/rc.d/rc.local 文件中。
/sbin/ifconfig eth0 alias www.domain1.com /sbin/ifconfig eth0 alias www.domain2.com /sbin/ifconfig eth0 alias www.domainN.com |
如果您要设置新域名或更改当前域名,则必须在 Internic 注册该域名。模板可以在 ftp://rs.internic.net/templates/domain-template.txt 找到。
需要配置 Named,以便您的虚拟域名对外部世界可见。我并不声称是 DNS 专家。欢迎提出建议。
directory /etc/named.data primary realdomain.com db.realdomain.com primary xxx.xxx.xxx.IN-ADDR.ARPA db.xxx.xxx.xxx primary 0.0.127.IN-ADDR.ARPA db.local primary domain1.com db.domain1.com primary domain2.com db.domain2.com cache . named.root |
![]() | 将 x 替换为您的 IP。 |
$ORIGIN com. domain1 IN SOA domain1.com. hostmaster.domain1.com. ( 10134 43200 3600 604800 86400 ) IN NS ns1.realdomain.com. IN MX 10 mail.realdomain.com. IN MX 0 domain1.com. domain1.com. IN A xxx.xxx.xxx.xxx ;www.domain1.com IP $ORIGIN domain1.com. ftp IN CNAME domain1.com. www IN CNAME domain1.com. mail IN CNAME domain1.com. |
您应该已经为当前站点拥有一个 db.xxx.xxx.xxx 文件,请更新它以包含用于反向查找的新虚拟域名。
xx IN PTR www.domain1.com. xx IN PTR www.domain2.com. |
完成编辑配置文件后,您需要重启 named 守护程序。
您的虚拟客户很可能希望能够将发送到他们域名的邮件转发到另一个域名。一些 sendmail.cf 更改就可以解决问题。经过几个月尝试不同的 sendmail 更改后,这是我发现的第一个有效的方法,并且每个新的虚拟站点只需要一个 sendmail.cf 更改。
获取包含 makemap btree 支持的 sendmail 当前版本。
创建一个名为 /etc/domainalias 的文件,其中包含以下映射。
*@domain1.com localnet@realdomain.com *@domain2.com townplaz@realdomain.com *@domainN.com soracomp@realdomain.net webmaster@domain1.com somuser@anotherhost.com jamison@domain2.com anotheruser@somehost.com |
创建映射的 DB 文件
makemap btree /etc/domainalias.db < /etc/domainalias |
4.6.2. /etc/sendmail.cf 更改
为每个新的虚拟主机添加一个 Cw 记录。
Cwdomain1.com Cwdomain2.com |
只添加一次 domainalias 映射。
Kdomainalias btree /etc/domainalias.db |
添加/更改规则集 98
################################################################### ### Ruleset 98 -- local part of ruleset zero (can be null) ### ################################################################### S98 R$+ < $+ . > $1 < $2 > remove trailing dots R$+ < $+ > $: < > $(domainalias $1$2 $) match user@address R< > $+ @ $* $: < $1 > $(domainalias * @ $2 $) match *@address R< $+ > * $* $: < > $1 $2 replace * with userid R < $+ > $+ $: < > $2 bugfix R< > $* $: $>3 $1 and rewrite using S3 |
4.6.3. Sendmail 测试
测试 sendmail 配置以验证新的 sendmail.cf 更改。
sendmail -v -bv info@domain1.com |
最终目的地应该显示出来。
目前,我还没有能够让虚拟 FTP 工作。存在一些补丁程序,我相信存在可用的补丁程序。我们只是创建了一个工作目录 /home/ftp/business/domain1,但真正的虚拟 FTP 会更好。
如果有人愿意贡献解决方案,我将非常乐意在此处添加。
Arnt Gulbrandsen 已经重写了 ftpd,并包含了对独立 FTP 服务 Troll Tech FTP 守护程序的支持。