==================== MySQL bases vhosting ==================== ----------------------- Module: mod_mysql_vhost ----------------------- :Author: ada@riksnet.se :Date: $Date: 2004/08/29 09:43:49 $ :Revision: $Revision: 1.1 $ :abstract: This module provides virtual hosts (vhosts) based on a MySQL table, and (optionally) prepares mod_fastcgi for sub-chroot FastCGI deployment. .. meta:: :keywords: lighttpd, mysql, vhost .. contents:: Table of Contents Description =========== vhost via mysql Options ======= Example: :: mysql-vhost.db = "lighttpd" mysql-vhost.user = "lighttpd" mysql-vhost.pass = "secret" mysql-vhost.sock = "/var/mysql.lighttpd.sock" mysql-vhost.sql = "SELECT docroot,fcgioffset,fcgiarg FROM domains WHERE domain='?'" MySQL setup: :: GRANT SELECT ON lighttpd.* TO lighttpd@localhost IDENTIFIED BY 'secret'; CREATE DATABASE lighttpd; USE lighttpd; CREATE TABLE domains ( domain char(64) not null primary key, docroot char(128) not null, fcgioffset tinyint unsigned not null, fcgiarg smallint unsigned not null ); INSERT INTO domains VALUES ('host.dom.ain','/http/host.dom.ain/',5,10001); Extra stuff: :: fastcgi.server = ( ".php" => ( "php-fcgi" => ( "socket" => "../php/socket", "spawn" => "/php/php-spawn" ))) The example above will get the docroot for a virtual host from the lighttpd.domains table, and also change the docroot for FastCGI to be 5 (=fcgioffset) chars below the web docroot (in the example above this means that the web docroot is /http/host.dom.ain/, while the FastCGI docroot will be /host.dom.ain/). The fastcgi.server "socket" is (patched to be) relative to docroot, and the new "spawn" argument specifies a command to run to dynamically create a new FastCGI process in case none is running (as opposed to "bin-path" which does not dynamically create/restart FastCGI processes). The example above will also add the argument "10001" (=fcgiarg) when invoking the /php/php-spawn (=spawn) FastCGI spawn program. Tf the spawn program is setuid this can be used to chroot and setgid/setuid to the right user before exec:ing the actual FastCGI program. NOTE: both fcgioffset and fcgiarg are optional. Just remove every mention of them in the example above for a pure vhost server. You can also use just fcgioffset and not fcgiarg if you like.