วิธีการติดตั้ง MediaWiki หลายเว็บโดยใช้ source code ร่วมกัน

เราสามารถทำการติดตั้ง 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

  1. ทำการดาวน์โหลด source code และแตกไฟล์ลงในไดเรกทอรีหลัก  โดยตั้งชื่อไดเรกทอรีว่า wiki (http://www.domain.com/wiki)
  2. สร้าง database หลักใน MySQL ที่ mywiki1 และ mywiki2 จะมาใช้ร่วมกัน
  3. ใช้ browser เปิดเรียก wiki ที่เพิ่งติดตั้งลงไปในข้อ  1
  4. ทำการติดตั้ง MediaWiki ตามขึ้นตอนปกติ   โดยให้ใส่ข้อมูลที่ต้องการของ mywiki1  และใช้ database ที่สร้างในข้อ 3  โดยจะต้องใส่ Database table prefix ให้แตกต่างกัน เช่นตั้งเป็น mywiki1_
  5. หลังจากดำเนินการตามข้อ 4 เรียบร้อยแล้ว เราจะได้ไฟล์ LocalSettings.php ในไดเรกทอรี config   ให้ย้ายไฟล์นี้ออกมาที่ไดเรกทอรีหลักของ wiki  โดยเปลี่ยนชื่อเป็น LocalSettings_mywiki1.php
  6. แก้ไขไฟล์ LocalSettings_mywiki1.php โดยแก้ค่าของตัวแปร $wgScriptPath ให้เป็น path ของ mywiki1 (http://www.domain.com/mywiki1) เช่น  $wgScriptPath       = “/mywiki1”;
  7. ทำตามข้อ 3-5 อีกครั้ง  สำหรับ mywiki2   โดยใส่ Database table prefix เป็น mywiki2_   และย้ายไฟล์ LocalSettings.php ไปไว้ในไดเรกทอรีหลัก wiki ในชื่อ LocalSettings_mywiki2.php   และ $wgScriptPath       = “/mywiki2”
  8. สร้าง symbolic link สำหรับ mywiki1 และ mywiki2   ไปที่ ไดเรกทอรี wiki ด้วยคำสั่ง
    ln -s wiki mywiki1  และ ln -s wiki mywiki2
  9. เพิ่ม option FollowSymLinks สำหรับไดเรกทอรี httpdocs ในไฟล์ ~/conf/vhost.conf ของโดเมน domain.com เช่น
    <Directory /home/www/vhosts/domain.com/httpdocs>
    Options FollowSymLinks
    </Directory>
  10. สั่งให้ plesk reconfigure ข้อมูลจากไฟล์ vhost.conf  โดยใช้คำสั่ง
    #/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com
  11. ทำการ restart Apache web server
    #service httpd restart
  12. สร้างไฟล์ 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