[Mediawiki-l] Small Wiki Farm

MHart wiki at matthart.com
Thu Dec 15 16:25:16 UTC 2005


Don't use the root directory for English - use separate folders for each 
wiki installation. I host about 50 wikis on the same server, some with their 
own domain names, some under a common name.

wikis.site.com/wiki1
wikis.site.com/wiki2
wikis.site.com/wiki3
wikis.site.com/wiki4

All under /var/www/wikis:   ./wiki1  ./wiki2  ./wiki3  and so on.

Sites with a different domain I keep separate:  /var/www/site1 
/var/www/site2  etc...

Just copy the wiki software into each folder and set it up as usual. The 
main trick is to prevent session mixing, since the same user can access a 
wiki on the same domain. Just add a line to LocalSettings here:

$wgSitename         = "YourWikiName";
ini_set("session.name", "{$wgSitename}Session");    // Added line

That allows a user to save their login on each wiki, even when it is in the 
same domain.

Here's my whole process for creating a brand new wiki (Fedora Core 4 - 
pretty much the same for Mandrake too, except you don't need paths for 
useradd and service commands)

ssh to server
su
cd /var/www/wikis
mkdir newwiki
cd newwiki
cp -R /home/mhart/mediawiki-1.5.x/* ./
chmod a+w config
mysql -p  (enter password)
mysql> create database newwikidb;
mysql> grant all privileges on newwikidb.* to 'newwiki_user'@'localhost' 
identified by 'newwiki_password';
mysql> quit

Then I browse to the site: mysite.com/newwiki  and run the setup. Then...

cp config/LocalSettings.php ./
chmod a-w config
vi LocalSettings.php
then find the $wgSiteName and add the line I showed above (ini_set)
:wq  (write and quit)

cd ..  (now I'm in /var/www/wikis)
/usr/sbin/useradd -d /var/www/wikis/newwiki newwiki
passwd newwiki (enter password twice)
chown -R newwiki newwiki
chgrp -R apache newwiki
vi /etc/vsftpd/chroot_list  (to add that user to the chroot list for FTP 
access - I already configured vsftpd for chrooting)
:wq

Then I create a backup cron job for the user - my default mediawiki install 
has a mysql\ folder in for database backup:

crontab -e
50 23 * * * /home/mhart/backup.sh /var/www/wikis/newwiki/mysql newwikidb 
newwiki   (parameters are path for backup, database name, owner name)
:wq

And I'm done - takes me five minutes :-)

If the wiki is on a different website, I use Apache vhosting:

vi /etc/httpd/conf/httpd.conf
(find the virtual hosting stuff)
<VirtualHost 111.222.33.44>
    ServerName whatever.com
    DocumentRoot /var/www/whatever
    TransferLog /var/www/whatever/logs
</VirtualHost>
:wq

Then restart Apache:

/sbin/service httpd restart

An extra 90 seconds :-)


- MHart


----- Original Message ----- 
From: "Laurie Lewis" <ldlewis at swiftdsl.com.au>
To: <mediawiki-l at Wikimedia.org>
Sent: Wednesday, December 14, 2005 6:47 PM
Subject: [Mediawiki-l] Small Wiki Farm


> Sorry but any assistance gratefully accepted.  I am very new to this and
> trying to set up a number of wikis on the one site.  All of them will
> deal with the same topic they are just in different languages.  I have
> been playing around with it for a while but seem to just keep breaking
> it.  I also found this article but I am having some problems following
> it.
>
> How do I create a small wiki farm?
>
> After copying the mediawiki source tree in /opt/mediawiki/ you need to
> run something like:
> mkdir .../wiki
> cd .../wiki
> mkdir images
> ln -s /opt/mediawiki/languages /opt/mediawiki/maintenance \
>   /opt/mediawiki/skins /opt/mediawiki/redirect.php .
> cp -a /opt/mediawiki/config/ .
> chown www-data: config/
> cp /opt/mediawiki/index.php index.php
> Then add /opt/mediawiki to the commands which set the include_path in
> config/index.php and add something like this to the main index.php:
> ini_set( "include_path", "/opt/mediawiki:." ); # line added
> require_once( 'includes/Defines.php' ); # this line used to include
> './includes/Defines.php'
> * make sure your webserver can read from /opt/mediawiki
>
>
> What I have done so far.
>
> Mkdir mediawiki      //Placed all the mediawiki files into this
> directory
>
> Created directories for
> French
> Danish
> Spanish
> German
>
> Using root directory for English
>
> Created symbolic links for all files and directories in /mediawiki in
> each language based directory
> Ran the installation process for each language based wiki  and moved
> LocalSettings.php
> For each wiki I am using a separate database as when I tried to use one
> database with prefixes it did not work -  It would not show appropriate
> languages for each wiki but got stuck on one.
>
> The only settings that different in each of the wiki's is basically the
> languagecode and databasename.  I have tried moving nearly all the
> settings from the LocalSettings.php to a CommonSettings.php file and
> calling it with an include_once statement but this just seems to break
> things also.
>
> Can anyone give me some very simple instructions on how to do this.
>
> Thanks
>
> Laurie
>
> _______________________________________________
> MediaWiki-l mailing list
> MediaWiki-l at Wikimedia.org
> http://mail.wikipedia.org/mailman/listinfo/mediawiki-l 





More information about the MediaWiki-l mailing list