On some hosting services you only get one DB but you can have several domains or sub-domains. Since I am in such a situation I developed the following process to allow multiple independant in a single DB. This was developed using the latest CVS for 1.8 as of 10am 12/22/03. It should continue to work for 1.8, but most likely will fail on <1.8. It is only tested with MySQL. I've done my best to get the Wiki formating accurate, but if in doubt use the attached text file for guidence. Here are the steps: For all search/replace operation be sure to match case. In db/tiki.sql replace: "DROP TABLE IF EXISTS " with "DROP TABLE IF EXISTS ##PREFIX##" "CREATE TABLE " with "CREATE TABLE ##PREFIX##" "INSERT IGNORE INTO " with "INSERT IGNORE INTO ##PREFIX##" "INSERT INTO " with "INSERT INTO ##PREFIX##" "UPDATE " with "UPDATE ##PREFIX##" Save as db/prefix_tiki.sql. In db/prefix_tiki.sql replace "##PREFIX##" with your chosen prefix. In this example we'll use "photon_" as the prefix. Save this file under a new name like "photon_tiki.sql". Now use "photon_tiki.sql" to add and configure the tables in your shared DB. You now have a prefixed DB to run your tiki site. Next we need to change the php source to use the prefixed site. This will once again use a masive set of search and replace operations. There will also be a few hand tweeks. Note that ` is the carret not the single quote '! This is usually on the same key as the tilde (~) on US keyboards. For all files matching *.php or *.inc in all subdirectories replace: #from `tiki_# with #from `".$GLOBALS["db_prefix_tiki"]."tiki_# #update `tiki_# with #update `".$GLOBALS["db_prefix_tiki"]."tiki_# #into `tiki_# with #into `".$GLOBALS["db_prefix_tiki"]."tiki_# #join `tiki_# with #join `".$GLOBALS["db_prefix_tiki"]."tiki_# #`tiki_# with #`".$GLOBALS["db_prefix_tiki"]."tiki_# #`users_# with #`".$GLOBALS["db_prefix_tiki"]."users_# #`messu_# with #`".$GLOBALS["db_prefix_tiki"]."messu_# #'sessions'# with #$GLOBALS["db_prefix_tiki"].'sessions'# #'galaxia_'# with #$GLOBALS["db_prefix_tiki"].'galaxia_'# In lib/tikilib.php in the function update_session there are two lines that use single quotes for the query instead of double quotes. Our search and replace from above will use double quotes, so we need to fix this. Change: if ($user) { $this->query('delete from `".$GLOBALS["db_prefix_tiki"]."tiki_sessions` where `user`=?', array($user), -1, -1, false); } $this->query('delete from `".$GLOBALS["db_prefix_tiki"]."tiki_sessions` where `sessionId`=?', array($sessionId), -1, -1, false); To: if ($user) { $this->query('delete from `'.$GLOBALS["db_prefix_tiki"].'tiki_sessions` where `user`=?', array($user), -1, -1, false); } $this->query('delete from `'.$GLOBALS["db_prefix_tiki"].'tiki_sessions` where `sessionId`=?', array($sessionId), -1, -1, false); The only difference are the quotes around .$GLOBALS["db_prefix_tiki"]. that get changed from " to '. There are four in total. In db/tiki-db.php add: $db_prefix_tiki = 'photon_'; replacing "photon_" with your prefix just after the definition of $tikidomain. Now just put it all on your server and you are ready to go. To set up the next site on the same database just do the search/replace on prefix_tiki.sql with a new prefix, copy the source to the new site's root, and change the value of $db_prefix_tiki to match the new prefix.