To provide Miva (not Miva Merchant) for a Virtual Subhost, we recommend that you use Miva's <VirtualHost> configuration directive.

  1. Be sure that you are running the latest version of Miva. If you are not running the latest version, you should Upgrade Miva/HTMLScript.

  2. Be sure that the following parameters are set in miva.conf:

    virtualhostvariable=SERVER_NAME
    dnslookup=0

    NOTE: If you choose to set virtualhostvariable=HTTP_HOST, then your miva.conf must have a <VirtualHost> directive for each of the virtual subhost's domain names. For example, using HTTP_HOST will require both subhost-domain.com and www.subhost-domain.com to have its own <VirtualHost> directive in miva.conf. This is why we recommend using SERVER_NAME instead, because in your httpd.conf, you can consolidate a virtual subhost's multiple host names under a single <VirtualHost> directive with just one ServerName. This is documented in the instructions below.

  3. Add the <VirtualHost> directive to the miva.conf. Assuming that you are using virtualhostvariable=SERVER_NAME in the miva.conf, the name of the <VirtualHost> should equal the ServerName for the subhost defined in the <VirtualHost> directive for your web server in your httpd.conf. Ideally, the mivaroot parameter should equal the virtual subhost's DocumentRoot (another parameter of the <VirtualHost> directive in httpd.conf). The stdmodedatadir should be outside of the ~/www/htdocs directory, unaccessable by others, since all data collected by Miva will be stored in that directory. The VirtualHost directive in miva.conf should look something like this:

    <VirtualHost www.SUBHOST-DOMAIN.NAME>
    mivaroot=/usr/local/etc/httpd/htdocs/SUBHOST-DOMAIN-DIR
    stdmodedatadir=/usr/local/etc/httpd/miva/SUBHOST-DOMAIN-DIR_data
    mivadefault=index.html 
    serveradmin=webmaster@SUBHOST-DOMAIN.NAME
    </VirtualHost>
  4. You may or may not need to modify your web server configuration file, httpd.conf, depending on the method you are using to give your virtual subhost's CGI support. After ensuring that the parameters defined in the <VirtualHost> directive in httpd.conf matches those you set in the <VirtualHost> directive of miva.conf, you must check if your subhost has access to the Miva engine that was put in your ~/www/cgi-bin during the Miva installation. If the virtual subhost is sharing your Virtual Private Server's primary cgi-bin directory (meaning that you have not explicitly identified an alternate ScriptAlias for the subhost in the<VirtualHost> directive of httpd.conf), after following all the instructions above, Miva should be setup and ready to support your virtual subhost. If you don't understand what a ScriptAlias is, then your virtual subhost is probably using your primary cgi-bin directory and the Miva engine therein, so you don't have to worry about making anymore changes. Go on to the next step. However, if the virtual subhost has its own cgi-bin directory, then we would recommend that you give that virtual subhost access to the Miva engine in your primary cgi-bin directory by adding the following to your httpd.conf's <VirtualHost> directive:

    ScriptAlias /cgi-miva/ /usr/local/etc/httpd/cgi-bin/
    AddType application/x-httpd-Miva .mv
    Action application/x-httpd-Miva /cgi-miva/miva

    NOTE: If Miva still has problems running an application for a virtual subhost, or runs the application but stores data in the wrong directory, then delete all the files in your workdir (the default installation will have this set as ~/www/miva/workdir). This directory contains a caching database with virtual subhost configuration information. Deleting the database files will require Miva to reload the new VirtualHost iinformation from miva.conf.

Please note: the information on this page applies to ITS web hosting plans. It may or may not apply to other environments. If you are looking for a feature described here, or better support from your hosting provider, please consider hosting your site with ITS!

1555 N Naperville/Wheaton Road, Suite 107
Naperville, IL 60563
phone 630.420.2550
fax 630.420.2771