Create a regular Linux account for the virtual customer with home directory and mail.
Virtual Host implementations are still changing. A few patches exist to support Virtual Host Check the server's release notes for more details. NCSA 1.5 or Apache now include the Virtual patches, and I have been told that Spinner supports virtual hosts.
One virtual patch supports the following srm.conf syntax, however the second NCSA 1.5 method of defining a Virtual host allows for greater flexibility
SubDocumentRoot www.domain1.com /usr/local/etc/httpd/docs/domain1 SubDocumentRoot www.domain2.com /usr/local/etc/httpd/docs/domain2 |
NCSA and Apache support the following httpd.conf syntax:
ServerAdmin [email protected] DocumentRoot /usr/local/etc/httpda/docs/domain1 ServerName www.domain1.com ErrorLog logs/errors.domain1.com TransferLog logs/access_log.domain1.com |
Once the IPalias patches have been installed add the following to your /etc/rc.d/rc.local on your local web server.
/sbin/ifconfig eth0 alias www.domain1.com /sbin/ifconfig eth0 alias www.domain2.com /sbin/ifconfig eth0 alias www.domainN.com |
If you are setting up a new domain or change a current domain, you must register the domain with Internic. The template can be found at ftp://rs.internic.net/templates/domain-template.txt
Named will need to be configured so that your virtual domain will be visible to the outside world. I don't claim to be an expert on DNS. Suggestions always welcome.
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 |
Replace x with your 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. |
You should already have a db.xxx.xxx.xxx for your current site update it to contain the new virtual domains for reverse lookups
xx IN PTR www.domain1.com. xx IN PTR www.domain2.com. |
Once you've finished editing config files, you will need to restart the named daemon.
Your virtual customers will more than likely want the ability to have mail that is sent to their domain forwarded to another domain. A few sendmail.cf changes will do the trick. After several months of trying different sendmail changes, this is the 1st method that I found that works and requires only one sendmail.cf change for each new virtual site.
Retrieve the current version of sendmail that contains makemap btree support.
Create a file called /etc/domainalias with the following mappings:
*@domain1.com [email protected] *@domain2.com [email protected] *@domainN.com [email protected] [email protected] [email protected] [email protected] [email protected] |
Create the maped DB file
makemap btree /etc/domainalias.db < /etc/domainalias |
/etc/sendmail.cf changes:
Add a Cw record for each new virtual host
Cwdomain1.com Cwdomain2.com |
Add the domainalias mapping only once.
Kdomainalias btree /etc/domainalias.db |
Add/Change Ruleset 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 |
Sendmail Testing
Test the sendmail configuration to verify the new sendmail.cf changes
sendmail -v -bv [email protected] |
The final destination should be displayed.
Currently, I have not been able to get Virtual FTP to work. A few patches exist, and I'm sure a working patch exist. We just create a working directory /home/ftp/business/domain1, but a true Virtual FTP would be nice.
If anyone would like to contribute a solution, I would be more than happy to add it here.
Arnt Gulbrandsen has rewritten ftpd and has included support for independent FTP services The Troll Tech FTP Daemon