ติดตั้ง mediawiki บน ubuntu

จาก Wiki Opensource
รุ่นปรับปรุงเมื่อ 13:45, 1 พฤษภาคม 2555 โดย Wipat.s (พูดคุย | เรื่องที่เขียน)
(ต่าง) ←รุ่นปรับปรุงก่อนหน้า | รุ่นล่าสุด (ต่าง) | รุ่นปรับปรุงถัดไป→ (ต่าง)

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 01-05-2555

ดูแลโดย WIPAT


  • ทดสอบกับ ubuntu 10.04 และ mediawiki 1.17.4
  • ต้นฉบับ mediawiki อยู่ที่ http://www.mediawiki.org/


  1. ติดตั้ง apache web server ด้วยคำสั่ง
    sudo apt-get install apache2
  2. ติดตั้ง mysql database server ด้วยคำสั่ง
    sudo apt-get install mysql-server

    ระหว่างติดตั้งหากมีคำถามที่เกี่ยวกับการตั้งรหัสผ่าน ก็ให้เคาะแป้น enter ผ่านไปก่อนทั้งหมด
    หลังติดตั้งเสร็จแล้วให้รีบตั้งรหัสผ่าน root ของ mysql-server ใหม่

    ตัวอย่างนี้ตั้งรหัสผ่านว่า mysqldroot ใช้คำสั่งคือ
    mysqladmin -uroot password mysqldroot
  3. ติดตั้ง php ด้วยคำสั่ง
    sudo apt-get install php5 php5-mysql php5-cli php5-gd php5-ldap php5-radius unzip
    sudo a2enmod rewrite

    แล้วสั่งให้ apache ทำงานใหม่ด้วยคำสั่ง
    sudo /etc/init.d/apache2 force-reload
  4. สร้าง database สำหรับ mediawiki ที่ต้องการติดตั้ง
    ตัวอย่างสร้าง database ชื่อ wikidb ใช้คำสั่ง
    mysql -uroot -pmysqldroot -e "CREATE DATABASE wikidb CHARACTER SET 'UTF8';"

    ***หากต้องการลบ database เดิมที่เคยสร้างไว้แล้ว ใช้คำสั่งว่า
    mysql -uroot -pmysqldroot -e "DROP DATABASE wikidb;"

    แล้วกำหนดสิทธิ์การใช้ database wikidb ให้แก่ user
    ตัวอย่างสร้าง user ชื่อ wikiuser โดยมีรหัสผ่านว่า wikipass ใช้คำสั่งคือ
    mysql -uroot -pmysqldroot -e "grant all privileges on wikidb.* to 'wikiuser'@'localhost' identified by 'wikipass' ;"
  5. ติดตั้ง mediawiki ดาวน์โหลดจาก http://ftp.psu.ac.th/pub/mediawiki/mediawiki-1.17.4.tar.gz ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/mediawiki/mediawiki-1.17.4.tar.gz

    แตกแฟ้มออกมาติดตั้งด้วยคำสั่ง
    sudo tar -zxvf /tmp/mediawiki-1.17.4.tar.gz -C /var/www

    แล้วทำงานต่อด้วยคำสั่ง
    sudo mv /var/www/mediawiki-1.17.4 /var/www/mediawiki
    sudo chown -R www-data /var/www/mediawiki
  6. เริ่มต้นระบบไปที่เวบ http://localhost/mediawiki
    ได้หน้าเวบข้อความว่า
    * MediaWiki 1.17.4
    LocalSettings.php not found.
    Please set up the wiki first.
    ให้คลิกเลือก setup the wiki

    * ได้หน้าเวบหัวข้อว่า MediaWiki 1.17.4 Installation
    Language
    ช่อง Your language: ให้เปลี่ยนไปเลือกเป็น th - ไทย
    ช่อง Wiki language: ให้เปลี่ยนไปเลือกเป็น th - ไทย
    แล้วคลิกเลือกปุ่ม Continue

    ได้หน้าเวบหัวข้อว่า Welcome to MediaWiki! ...
    ให้ตรวจสอบว่าข้อมูลของหน้าเวบมีข้อความสีเขียวว่า
    The environment has been checked. You can install MediaWiki
    ...
    ให้คลิกเลือกปุ่ม Continue

    ได้หน้าเวบหัวข้อว่า Connect to database
    ช่อง Database host: ยังคงเป็น localhost เหมือนเดิม
    ช่อง Database name: ให้เปลี่ยนเป็น wikidb
    ช่อง Database table prefix: ให้ปล่อยว่างไว้เหมือนเดิม
    ช่อง Database username: ให้เปลี่ยนเป็น wikiuser
    ช่อง Database password: ให้เปลี่ยนเป็น wikipass
    แล้วคลิกเลือกปุ่ม Continue

    ได้หน้าเวบหัวข้อว่า Database settings
    ช่อง Storage engine: ยังคงเป็น InnoDB เหมือนเดิม
    ช่อง Database character set: เปลี่ยนให้เป็น UTF-8
    แล้วคลิกเลือกปุ่ม Continue

    ได้หน้าเวบหัวข้อว่า Name
    ช่อง Name of wiki: ใส่ค่าตามใจชอบเช่น mw1174
    ช่อง Project namespace: ยังคงเป็น Same as the wiki name: เหมือนเดิม
    ช่อง Your name: ให้ป้อนว่า admin
    ช่อง Password: ให้ป้อนว่า 123456
    ช่อง Password again: ให้ป้อนว่า 123456
    ช่อง E-mail address: ให้ใส่อีเมล์ตามใจชอบ
    ไปที่ด้านล่างสุด เดิมเลือกเป็น Ask me more questions
    ให้เปลี่ยนไปเลือกเป็น I'm bored already, just install the wiki. แทน
    แล้วคลิกเลือกปุ่ม Continue

    ได้หน้าเวบหัวข้อว่า Install
    ให้คลิกเลือกปุ่ม Continue
    ระบบจะเริ่มติดตั้งได้หน้าเวบใหม่
    ให้คลิกเลือกปุ่ม Continue อีกที

    ได้หน้าเวบหัวข้อว่า Complete!
    และได้หน้าต่างใหม่ขึ้นมาแจ้งให้บันทึกแฟ้ม LocalSettings.php
    ให้ save แฟ้มนี้เก็บเอาไว้ใน local disk ก่อน

    ต่อไปให้นำแฟ้ม LocalSettings.php ที่เก็บไว้นี้ไปไว้บน mediawiki server ตัวนี้
    โดยเก็บใส่ไว้ให้เป็น /var/www/mediawiki/LocalSettings.php
    แค่นี้ก็เสร็จแล้ว ใช้งานเวบนี้ได้เลย
  7. ทดสอบเริ่มต้นใช้งานได้ที่เวบ http://localhost/mediawiki
  8. การปรับแต่งเมนูด้านซ้ายมือ ให้ไปที่เวบ http://localhost/mediawiki/index.php/MediaWiki:Sidebar
  9. ปรับแต่งภาพที่แสดงด้านซ้ายบน ให้เอารูปมาเก็บไว้ที่ /var/www/mediawiki
    แล้วให้แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    ตัวอย่างจัดการบรรทัดตัวแปร $wgLogo = "mediawiki/psulug.jpg";
  10. ปรับแต่งให้หน้าเวบเป็นภาษาไทย แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    จัดการตัวแปรให้เป็น $wgLanguageCode = "th";
  11. อนุญาติให้ upload แฟ้ม ให้แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    ตั้งค่าตัวแปร $wgEnableUploads = true;
    เพิ่มชนิดของแฟ้มที่ upload ได้คือ $wgFileExtensions[] = "pdf";
  12. ปรับแต่งเวลาให้แสดงเป็นประเทศไทย แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    จัดการบรรทัดตัวแปรดังนี้
    $wgLocaltimezone = "Asia/Bangkok";
    $oldtz = getenv("TZ");
    putenv("TZ=$wgLocaltimezone");
    $wgLocalTZoffset = date("Z") / 60;
    putenv("TZ=$oldtz");
  13. ปรับแต่งห้ามไม่ให้บุคคลทั่วไปขอสร้าง user เพิ่ม
    แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    แล้วเพิ่มบรรทัดข้อความเข้าไปที่ตอนท้ายของแฟ้มว่า
    $wgGroupPermissions['*' ]['createaccount'] = false;
    หากต้องการสร้าง user เพิ่ม ต้อง login เข้าด้วยผู้คุมระบบ admin จึงจะสร้างได้
  14. ปรับแต่งห้ามไม่ให้บุคคลทั่วไปแก้ไขเนื้อหา ต้อง login เข้าก่อนจึงแก้ไขได้
    แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    แล้วเพิ่มบรรทัดข้อความเข้าไปที่ตอนท้ายของแฟ้มว่า
    $wgGroupPermissions['*']['edit'] = false;
  15. ติดตั้ง WYSIWYG editor เพื่อให้มีเครื่องมือเขียนง่ายขึ้น ทำดังนี้
    ต้องติดตั้งโปรแกรม unzip ก่อน ด้วยคำสั่ง
    sudo apt-get install unzip

    ดาวน์โหลดแฟ้มมาเก็บไว้ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/mediawiki/wysiwyg-1.6.0_22.zip
    แล้วแตกแฟ้มไปเก็บไว้ด้วยคำสั่ง
    sudo unzip -d /var/www/mediawiki /tmp/wysiwyg-1.6.0_22.zip

    ต่อไปแก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    แล้วเพิ่มบรรทัดข้อความเข้าไปที่ตอนท้ายของแฟ้มว่า
    require_once("$IP/extensions/WYSIWYG/WYSIWYG.php");
    $wgGroupPermissions['*']['wysiwyg']=true;

    ทำแค่นี้ทดสอบผลงานได้เลย ทดสอบดูพบว่าใช้ได้ดีกับ Firefox ส่วน browser ตัวอื่นพบว่าเพี้ยนๆ
  16. ลองติดตั้งกะ RADIUS server ต้องติดตั้งโปรแกรมเพิ่มเติมคือ
    sudo apt-get install php5-radius

    ดาวน์โหลดแฟ้มจาก http://ftp.psu.ac.th/pub/mediawiki/AuthenRadius.php ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/mediawiki/AuthenRadius.php

    แล้วนำไปติดตั้งด้วยคำสั่ง
    sudo mv /tmp/AuthenRadius.php /var/www/mediawiki/extensions

    แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php เติมไปที่บรรทัดสุดท้ายว่า
    require_once("./extensions/AuthenRadius.php");
    $wgAuth = new AuthenRadius();
    $wgRADIUShost = '10.0.6.2';
    $wgRADIUSkey = 'mykey';
    ปรับค่า $wgRADIUShost และ $wgRADIUSkey ตามต้องการ

    แล้วลองดูผลงานการ authen กับ radius server ได้เลย

    ข้อควรระวัง username ต้องเป็นภาษาอังกฤษตัวเล็กเท่านั้น
  17. ตัวอย่างการทำให้ url บน virtual host ดูสวย เช่น http://my.domain
    ให้แแก้ไขแฟ้ม /etc/apache2/sites-available/default ให้มีเนื้อหาประมาณว่า
    NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot /var/www
    ServerName my.domain
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/favicon.ico
    RewriteCond %{REQUEST_URI} !^/robots.txt
    RewriteCond %{REQUEST_URI} !^/mediawiki/
    RewriteRule ^/(.*)$ /mediawiki/index.php/$1 [L,QSA]
    </VirtualHost>

    และแก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php
    ให้มีบรรทัดตัวแปรว่า $wgArticlePath = "/$1";
  18. ลองติดตั้งกะ ldap PSU ต้องติดตั้งเพิ่มเติมคือ
    sudo apt-get install php5-ldap
    ดาวน์โหลดแฟ้มจาก http://ftp.psu.ac.th/pub/mediawiki/LdapAuthentication-MW1.17-r86547.tar.gz ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/mediawiki/LdapAuthentication-MW1.17-r86547.tar.gz
    แล้วติดตั้งด้วยคำสั่ง
    sudo tar -zxvf LdapAuthentication-MW1.17-r86547.tar.gz -C /var/www/mediawiki/extensions

    แก้ไขแฟ้ม /var/www/mediawiki/LocalSettings.php เติมไปที่บรรทัดสุดท้ายว่า
    require_once("./extensions/LdapAuthentication/LdapAuthentication.php");
    $wgAuth = new LdapAuthenticationPlugin();
    $wgLDAPDomainNames = array( "PSU" );
    $wgLDAPServerNames = array( "PSU"=>"front.psu.ac.th" );
    $wgLDAPEncryptionType = array( "PSU"=>"clear" );
    $wgLDAPBaseDNs = array( "PSU"=>"dc=cc,dc=psu");
    $wgLDAPSearchAttributes = array( "PSU"=>"uid");
    แล้วลองดูผลงานของ ldap PSU เลย

    ทดลองแก้ไขให้เฉพาะ user บางคนเท่านั้นที่จะเข้าไปบันทึกได้
    แก้ไขแฟ้ม /var/www/mediawiki/extensions/LdapAuthentication/LdapAuthentication.php
    แทรกเพิ่มที่ประมาณบรรทัด 329 ที่บรรทัดชุดคำสั่งว่า
    if ( == $password && !$this->useAutoAuth() ) {
    $this->printDebug( "User used a blank password", NONSENSITIVE );
    return false;
    }

    $this->connect();
    ให้แทรกเพิ่มเข้าไปกลายเป็นตามตัวอย่างว่า
    if ( == $password && !$this->useAutoAuth() ) {
    $this->printDebug( "User used a blank password", NONSENSITIVE );
    return false;
    }

    switch ($username) {
    case "Songkrant.m" :
    case "Wipat.s" :
    case "Wisit.c" :
    case "admin" : break;
    default : return false;
    }
    $this->connect();