เราสามารถทำการติดตั้ง MediaWiki หลายเว็บ โดยการใช้ source code ร่วมกันได้ โดยสามารถทำได้หลายวิธีดูได้จาก http://www.mediawiki.org/wiki/Manual:Wiki_family
ผมได้ทำการติดตั้งในเซิร์ฟเวอร์ที่ใช้ Plesk control panel โดยมีขั้นตอนดังนี้
สมมติว่าเราจะติดตั้ง http://www.domain.com/mywiki1 และ http://www.domain.com/mywiki2 โดยใช้ source code ของ MediaWiki จาก http://www.domain.com/wiki
- ทำการดาวน์โหลด source code และแตกไฟล์ลงในไดเรกทอรีหลัก โดยตั้งชื่อไดเรกทอรีว่า wiki (http://www.domain.com/wiki)
- สร้าง database หลักใน MySQL ที่ mywiki1 และ mywiki2 จะมาใช้ร่วมกัน
- ใช้ browser เปิดเรียก wiki ที่เพิ่งติดตั้งลงไปในข้อ 1
- ทำการติดตั้ง MediaWiki ตามขึ้นตอนปกติ โดยให้ใส่ข้อมูลที่ต้องการของ mywiki1 และใช้ database ที่สร้างในข้อ 3 โดยจะต้องใส่ Database table prefix ให้แตกต่างกัน เช่นตั้งเป็น mywiki1_
- หลังจากดำเนินการตามข้อ 4 เรียบร้อยแล้ว เราจะได้ไฟล์ LocalSettings.php ในไดเรกทอรี config ให้ย้ายไฟล์นี้ออกมาที่ไดเรกทอรีหลักของ wiki โดยเปลี่ยนชื่อเป็น LocalSettings_mywiki1.php
- แก้ไขไฟล์ LocalSettings_mywiki1.php โดยแก้ค่าของตัวแปร $wgScriptPath ให้เป็น path ของ mywiki1 (http://www.domain.com/mywiki1) เช่น $wgScriptPath = “/mywiki1”;
- ทำตามข้อ 3-5 อีกครั้ง สำหรับ mywiki2 โดยใส่ Database table prefix เป็น mywiki2_ และย้ายไฟล์ LocalSettings.php ไปไว้ในไดเรกทอรีหลัก wiki ในชื่อ LocalSettings_mywiki2.php และ $wgScriptPath = “/mywiki2”
- สร้าง symbolic link สำหรับ mywiki1 และ mywiki2 ไปที่ ไดเรกทอรี wiki ด้วยคำสั่ง
ln -s wiki mywiki1 และ ln -s wiki mywiki2 - เพิ่ม option FollowSymLinks สำหรับไดเรกทอรี httpdocs ในไฟล์ ~/conf/vhost.conf ของโดเมน domain.com เช่น
<Directory /home/www/vhosts/domain.com/httpdocs>
Options FollowSymLinks
</Directory> - สั่งให้ plesk reconfigure ข้อมูลจากไฟล์ vhost.conf โดยใช้คำสั่ง
#/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com - ทำการ restart Apache web server
#service httpd restart - สร้างไฟล์ LocalSettings.php โดยให้มีโปรแกรมดังนี้
$callingurl = strtolower($_SERVER['REQUEST_URI']); //get the calling url if ( strpos( $callingurl, 'mywiki1', 0) ) { require_once( 'LocalSettings_mywiki1.php' ); } else if ( strpos( $callingurl, 'mywiki2', 0) ) { require_once( 'LocalSettings_mywiki2.php' ); } else { echo "This wiki (in ". $callingurl . ") is not available. Check configuration."; exit(0); }
ทดลองเปิดเว็บ http://www.domain.com/mywiki1 และ http://www.domain.com/mywiki2