| mySQL vhosts This is a simple trick to provide vhosts information from DB to lighttpd.
 (You can use the same method to feed any dynamic data to lighttpd)
 
 Function include_shell is our best friend
 This function execute external command capture output and feed lighttpd config
 
 So add to lighttpd.conf:
 
 
 | include_shell "/etc/lighttpd/show_user_conf.php" | 
 The script show_user_conf.php is something like this one (chmod 755 before use ;')
 
 
    	| #!/usr/bin/php <?
 $MYSQL_HOST = "localhost";
 $MYSQL_USER = "db_user";
 $MYSQL_PASS = "db_password";
 $MYSQ_DB      = "db";
 
 echo "### VHOSTS ###\n\n";
 
 $mysql = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS);
 mysql_select_db($MYSQL_DB);
 $q = "SELECT * FROM vhosts_table ..."; // use your imagination
 $result = mysql_query($q, $mysql);
 while ($row = mysql_fetch_object($result))
 {
 echo '$HTTP["host"] == "' . $row->sub_domin . "." . $row->domain . '" {' . "\n";
 echo '   server.document-roow = "' . $row->doc_root . '"' . "\n";
 echo '   accesslog.filename   = "' . $row->access_log . '"' . "\n";
 ... // add everything you need for this vhost
 ... // ... and don't forget to get info from DB :'P
 echo '}' . "\n";
 }
 
 ?>
 
 |  It's easy ... yeah ?;')
 
 This solution is not perfect. You need to restart lighttpd when you need new configuration ... but ... nobody is perfect ;') I still hope that lighttpd will provide something like -HUP and then ... :'P
 
 
 
 Bugs, Patches and Suggestions
 
 Send me E-Mail: drJeckyll@Jeckyll.net
 
 
 
 
 
 
write new comment
 
 |