การติดตั้งระบบ CMS ด้วยโปรแกรม Mambo

การติดตั้งระบบ CMS ด้วยโปรแกรม Mambo

วิธีติดตั้ง CMS server ด้วยโปรแกรม mambo

  1. ต้องได้รับการติดตั้งระบบ Web server และ Mysql มาก่อนแล้ว

  2. ติดตั้งโปรแกรม php และที่เกี่ยวข้องตามความจำเป็น
    apt-get install php
    apt-get install php-mysql

    ในกรณีที่ใช้ yum ให้เปลี่ยนคำว่า apt-get เป็น yum ดังตัวอย่าง
    yum install php
    yum install php-mysql

    แล้วให้ web server ทำงานใหม่ด้วยคำสั่ง
    service httpd restart

  3. ปัญหาและเทคนิคเกี่ยวกับ mambo อ่านเพิ่มเติมได้ที่
    http://rd.cc.psu.ac.th/content/view/43/48/

  4. ดาวน์โหลดโปรแกรม mambo ได้จาก ftp://ftp.psu.ac.th/pub/mambo/

    เพื่อลดปัญหา security จึงขอใช้ชุดที่ผมทำไว้เองเป็นรุ่น 4.5.2.1 คือ
    ftp://ftp.psu.ac.th/pub/mambo/mambo-4521D-wipat.tgz
    ได้แก้ไขให้มีคุณสมบัติดังนี้แล้ว
    • ติตตั้งกับ linux fedora core 5 ได้
    • สามารถให้ user login โดยใช้ user บน pop3 mail server ได้
    • ได้แก้ไขปัญหา linux/elxbot mambo worm
    • ได้แก้ไขปัญหา A SQL injection vulnerability
    • ได้แก้ไขปรับปรุง bug ของ ldaphack9.zip
    • ได้แก้ไข RSS Feed ให้แสดงภาษาไทยอย่างถูกต้อง
    • ได้แก้ไข module newsfeed ให้แสดงภาษาไทยอย่างถูกต้อง
    • สร้าง directory ชื่อ rss ไว้สำหรับ rss_xt ด้วย

  5. หากท่านใช้ mambo เวอร์ชั่นอื่นๆ ที่ยังไม่ได้รับการซ่อมแก้ไขปัญหา
    linux/elxbot mambo worm หลังติดตั้งแล้ว ต้องแก้ไขปัญหา worm นี้
    โดยการแก้ไข code จากคำแนะนำต้นฉบับ
    http://forum.mamboserver.com/showthread.php?p=306009

    สรุปว่าให้ไปแก้ไขเพิ่ม code ที่แฟ้มของ mambo จำนวน 5 แฟ้มดังนี้
    1 - index.php
    2 - index2.php
    3 - administrator/index.php
    4 - administrator/index2.php
    5 - administrator/index3.php
    ทำเหมือนกันทุกแฟ้ม คือให้แทรกเพิ่ม code ที่ตอนต้นของแฟ้ม
    ถัดไปจากบรรทัดว่า define( "_VALID_MOS", 1 ); ให้แทรกเพิ่มบรรทัดดังนี้

    $protects = array('_REQUEST', '_GET', '_POST', '_COOKIE', '_FILES', '_SERVER', '_ENV', 'GLOBALS', '_SESSION');

    foreach ($protects as $protect) {
      if ( in_array($protect , array_keys($_REQUEST)) ||
        in_array($protect , array_keys($_GET)) ||
        in_array($protect , array_keys($_POST)) ||
        in_array($protect , array_keys($_COOKIE)) ||
        in_array($protect , array_keys($_FILES))) {
          die("Invalid Request.");
      }
    }

    แค่นี้ก็เสร็จแล้ว

  6. ใน web server เดียวกันสามารถติดตั้ง Mambo ได้หลายระบบอย่างอิสระ
    โดยแต่ละระบบมีสภาพแวดล้อมแยกจากกันดังนี้
    • directory เฉพาะสำหรับเก็บแต่ละระบบ Mambo
    • database และ user ของ Mysql เฉพาะสำหรับแต่ละระบบ Mambo

  7. ต้องสร้าง database สำหรับระบบ Mambo ที่กำลังจะติดตั้งใช้งาน
    ตัวอย่างข้อกำหนดคือ สร้าง database ชื่อ testdatabase ,
    ผู้ใช้ที่สร้างต้องมีสิทธิ์ระดับ root ของ Mysql , รหัสผ่านคือ mysqldroot

    ตัวอย่างคำสั่งคือ
    mysqladmin -uroot -pmysqldroot create testdatabase

  8. ต้องสร้าง user ของ Mysql สำหรับระบบ Mambo ที่กำลังจะติดตั้งใช้งาน ตัวอย่างคือ

    ต้องการสร้างผู้ใช้ของ Mysql ชื่อ mamamysql ให้มีรหัสผ่านเป็น mamapass
    มีสิทธิจัดการ database ชื่อ testdatabase

    เริ่มต้นให้เรียกเข้าใช้คำสั่ง Mysql ด้วยผู้ใช้ระดับ root ของ Mysql
    ที่มีชื่อว่า root รหัสผ่านว่า mysqldroot
    ด้วยคำสั่งตัวอย่างคือ
    mysql -uroot -pmysqldroot

    ได้ข้อความหน้าจอตัวอย่างว่า
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 10 to server version: 4.0.21
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    mysql>

    เมื่อได้ prompt mysql> ให้สร้างผุ้ใช้ชื่อ mamamysql ด้วยคำสั่งดังนี้
    grant all privileges on testdatabase.* to 'mamamysql'@'localhost' identified by 'mamapass' ;

    ได้ผลข้อความตัวอย่าง
    Query OK, 0 rows affected (0.00 sec)

    เสร็จแล้วออกจาก mysql ด้วยคำสั่ง quit

  9. การติดตั้งมี 2 แนวทางคือ
    • ติดตั้งแบบให้เป็นส่วนหนึ่งของระบบ web server โดยตรง
    • ติดตั้งแบบไว้ใน home ของผู้ใช้

  10. วิธีการติดตั้งแบบให้เป็นส่วนหนึ่งของระบบ web server โดยตรง
    ตัวอย่าง ต้องการติดตั้งไว้ที่ /var/www/html/test-mambo

    แล้วติดตั้งด้วยคำสั่งตัวอย่าง
    tar -zxvf mambo-4521D-wipat.tgz -C /var/www/html
    mv  /var/www/html/mambo-4521D-wipat  /var/www/html/test-mambo

    แก้ไขให้ apache เป็นเจ้าของของสิทธิ์ของ directory ที่สร้างขึ้นมา ด้วยตัวอย่างคำสั่ง
    chown -R apache /var/www/html/test-mambo

  11. วิธีการติดตั้งแบบไว้ที่ home ของผู้ใช้
    *** web server ต้องมีบริการโฮมเพจ เช่น http://myhost.domain/~userid
    *** home ของผู้ใช้อยู่ที่ /home/userid
    *** ตำแหน่งพื้นที่จริงของโฮมเพจผู้ใช้อยู่ที่ /home/userid/public_html

    ตัวอย่าง ต้องการติดตั้งไว้ที่ home ของผู้ใช้ชื่อ userid
    ที่ตำแหน่ง /home/userid/public_html/test-mambo

    แล้วติดตั้งด้วยคำสั่งตัวอย่าง
    tar -zxvf mambo-4521D-wipat.tgz -C /home/userid/public_html
    mv  /home/userid/public_html/mambo-4521D-wipat   /home/userid/public_html/test-mambo

    แก้ไขสิทธิ์ให้ผู้อื่นสามารถเขียนอ่านได้ด้วยคำสั่ง
    chmod 707 administrator/backups
    chmod 707 administrator/components
    chmod 707 administrator/modules
    chmod 707 administrator/templates
    chmod 707 cache
    chmod 707 components
    chmod 707 images
    chmod 707 images/banners
    chmod 707 images/stories
    chmod 707 language
    chmod 707 mambots
    chmod 707 mambots/content
    chmod 707 mambots/search
    chmod 707 media
    chmod 707 modules
    chmod 707 templates
    chmod 707 rss

  12. ใช้ web browser เข้าไปทำงานที่โฮมเพจตัวอย่าง http://myhost.domain/test-mambo ได้ผลว่า
    ...**** ต่อไปนี้คือตัวอย่าง ข้อมูลอาจเปลี่ยนแปลงได้ตามความเหมาะสม

    ได้หัวข้อ pre-installation check ตรวจสอบว่า
    PHP version >= 4.1.0 Yes
      - zlib compression support Available
      - XML support Available
      - MySQL support Available
    configuration.php Writeable
    Session save path /var/lib/php/session, Writeable

    administrator/backups/ Writeable
    administrator/components/ Writeable
    administrator/modules/ Writeable
    administrator/templates/ Writeable
    cache/ Writeable
    components/ Writeable
    images/ Writeable
    images/banners/ Writeable
    images/stories/ Writeable
    language/ Writeable
    mambots/ Writeable
    mambots/content/ Writeable
    mambots/search/ Writeable
    media/ Writeable
    modules/ Writeable
    templates/ Writeable

    ให้คลิกเลือก Next >>

    ได้หน้าต่อไปว่า license
    ให้คลิกเลือกช่อง I Accept the GPL License
    แล้วคลิกเลือก Next >>

    ได้หน้าต่อไปว่า step 1
    MySQL database configuration: ให้ป้อนข้อมูลตัวอย่างคือ
    Host Name = localhost
    MySQL User Name  = mamamysql
    MySQL Password = mamapass
    MySQL Database Name = testdatabase
    แล้วคลิกเลือก Next >> 

    ได้หน้าต่อไปว่า step 2
    Enter the name of your Mambo site ให้ป้อนข้อมูลตัวอย่าง
    Site name = My test MAMBO
    แล้วคลิกเลือก Next >> 

    ได้หน้าต่อไปว่า Step 3
    Confirm the site URL, absolute path,admin e-mail and file/directory chmods
    ให้ป้อนข้อมูลตัวอย่าง
    URL = http://myhost.domain/test-mambo
    Path = /var/www/html/test-mambo
    Your E-mail = [email protected]
    Admin password = admindemo   (*** รหัสผ่านของ admin)
    แล้วคลิกเลือก Next >> 

    ได้หน้าต่อไปว่า step 4
    Congratulations! Mambo is installed
    *** ให้จด admin Password  ที่แสดงออกมาทางหน้าจอเก็บไว้กันลืม ***

    คลิกเลือก View Site จะได้หน้าจอข้อความเตือนว่า

    For your security please completely remove the
    installation directory including all files and
    sub-folders - then resfresh this page

    ให้ลบ directory ชื่อ installation ทิ้งด้วยตัวอย่างคำสั่ง
    rm -r /var/www/html/test-mambo/installation

  13. หากต้องการแก้ไขตั้งค่าระบบต่างๆของ Mambo
    ให้ login เข้าด้วย admin

  14. หากเกิดปัญหา PC ที่เป็น server แสดงภาพกราฟฟิกได้หมด
    แต่ PC อื่นไม่แสดงกราฟฟิก
    ให้แก้ไขแฟ้ม configuration.php ใน mambo
    ตัวอย่างแก้ข้อความจาก $mosConfig_live_site = 'http://localhost/mam45';
    เป็น $mosConfig_live_site = 'http://192.168.41.194/mam45'; หรือเป็น
    $mosConfig_live_site = 'http://'.$_SERVER["SERVER_ADDR"].'/mam45';
    (แก้ไขจาก localhost ให้เป็นเลข ip ของ PC ที่เป็น server)

  15. เทคนิคการสร้าง mambo server เพื่อบริการ
    ให้ copy ชุดต้นฉบับเก็บไว้
    เวลาต้องการเปิดบริการเพิ่มก็ให้ copy ไปใช้ได้เลย
    แล้ว chown -Rv apache myhomepage...
    ถ้าให้ดีติดตั้งให้เสร็จแล้วให้รหัสผ่านของ admin แก่ web master ซะเลย

  16. การปรับตั้งค่าให้ search engine ภายนอกเข้ามาค้นหาข้อมูลได้
    ให้ login เข้าด้วย admin
    หัวข้อ  Site -> Global Configuration -> Content
    หัวข้อ Search Engine Friendly URLs: ให้ป้อนค่า Yes
    ยืนยันการปรับค่าด้วยการคลิกปุ่ม Save
     
    ต้องแก้ไขแฟ้ม htaccess ใน home ของ mambo ด้วย
    ตัวอย่างเข้าไปทำงานที่ /var/www/html/test-mambo
    cd /var/www/html/test-mambo
    mv htaccess.txt .htaccess

    ต้องแก้ไข apache ด้วยโดยแก้ไขแฟ้ม /etc/httpd/conf/httpd.conf ที่บริเวณ
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    ที่บรรทัด    AllowOverride None
    ให้แก้ไขเป็น AllowOverride all  
    สั่งให้ apache ทำงานใหม่ด้วยคำสั่ง service httpd reload