Installing CiviCRM 1.4

คุณบัง Mambohub บอกมาว่าคุณตฤณกำลังหาคนช่วยทดสอบ CiviCRM บน Drupal เผื่อจะเอามาใช้กับโครงการ OpenCARE ในการลงทะเบียนผู้มีส่วนเกี่ยวข้องและหน่วยงานที่สังกัด

CiviCRM เป็น CMS สำหรับทำ CRM (ตัวย่อชักเยอะฟ่ะ) อันที่ไม่ปกติคือมันไม่ได้เป็น CMS เต็มตัว แต่มันเป็นโมดูลที่เขียนบน CMS ตัวอื่นๆ ซึ่งตอนนี้สนับสนุน 2 ตัวคือ Mambo/Joomla และ Drupal

ผมเลยลองเอามาลงเล่นๆ ช่วยทดสอบ ปรากฎว่ามันลงยากกว่าที่คิดเยอะเลย

เครื่องที่ทดสอบใช้ Ubuntu Dapper แพกเกจเวอร์ชันตามนี้

  • Apache 2.0
  • PHP 5.1.2
  • MySQL 5.0
  • Drupal 4.7.1

เท่าที่อ่านในเว็บพบว่าสามารถใช้กับ Apache 1.3/MySQL 4.0 ได้ แต่เนื่องจากเราจะทดสอบด้าน Unicode ใน MySQL 5.0 ด้วย ใช้ซอฟต์แวร์ซิงๆ ทั้งชุดเหมาะกว่า

ส่วนขั้นตอนการติดตั้งบน Drupal ก็อ่านตามนี้ CivicSpace and Drupal - Manual Installation

  1. ขั้นแรกสุดก็ลง Drupal ให้เรียบร้อย ทดสอบว่ามันทำงาน สร้าง user คนแรกซะก่อน
  2. จากนั้นก็ดาวน์โหลด CiviCRM มาเก็บไว้ที่ไหนซักแห่งก่อน ไฟล์ที่เราจะใช้มีชื่อแบบนี้
    civicrm-drupal-php5-v1.4-revXXXX.tar.gz

  3. แตกมันไว้ที่
    /PATH/drupal/modules

    ต้องให้ไฟล์ civicrm.module อยู่ตามโครงสร้างไดเรคทอรีนี้

    /PATH/drupal/modules/civicrm/modules/civicrm.module

  4. สำหรับ Database เรามีทางเลือก 2 ทาง
    • ใช้ database อันเดิมของ Drupal
    • สร้าง database ของ CiviCRM แยกต่างหาก

    ผมเลือกวิธีหลัง สร้าง database ที่ชื่อ civicrm ขึ้นมาอีกอันนึงผ่าน PHPMyAdmin

  5. สร้างเสร็จแล้วก็ import SQL เข้าไป มันจะอยู่ในไดเรคทอรี
    /PATH/drupal/modules/civicrm/sql

    โดยเราต้องเลือกเวอร์ชันให้ตรง ในกรณีนี้ผมใช้

    civicrm_41.mysql

    ไฟล์เดียว สำหรับไฟล์ข้อมูลตัวอย่าง civicrm_generated.mysql พบว่าเกิดปัญหา SQL Error ก็เลยข้ามไป

  6. เมื่อ DB เรียบร้อย ก็ถึงเวลาของการคอนฟิก ให้เราก็อป
    /PATH/drupal/modules/civicrm/civicrm.settings.php.sample

    ในไดเรคทอรี CiviCRM ไปเป็น

    /PATH/drupal/sites/default/civicrm.settings.php

    ในไดเรคทอรี sites ของ Drupal อย่าลืมเปลี่ยนนามสกุลด้วย

  7. เรามาถึงส่วนที่ยากที่สุดแล้วล่ะครับ การคอนฟิกค่าเริ่มต้นนั่นเอง CiviCRM ต้องคอนฟิกอะไรก็ไม่รู้เต็มไปหมด เราไม่สามารถใช้เซนส์ว่าเคยลง Drupal มาแล้วมั่วๆ ไม่ต้องอ่านคู่มือได้เลย ขั้นตอนที่ถูกต้องคืออ่านตัวอย่างที่เป็น comment ในไฟล์ civicrm.settings.php นี้ให้ละเอียดๆ แล้วเขียนตามอย่าให้ตก จุดสำคัญที่พอแนะนำได้มีดังนี้
    • ในตัวอย่างจะมีทั้งเวอร์ชัน Joomla และ Drupal อย่าอ่านผิดบรรทัด
    • เปลี่ยนเลขเวอร์ชัน Drupal (CIVICRM_UF_VERSION) เป็น 4.7
    • ส่วนของ DB มีสองจุด คือ DB ของ CMS (CIVICRM_UF_DSN) และของ CiviCRM (CIVICRM_DSN) ถ้าแยก database แบบที่ผมทำ ก็ต้องดูให้ดีว่าช่องไหนเป็นอะไร
    • สำหรับสองบรรทัดของข้อตะกี้ ห้ามลบลิงก์ ?new_link=true ข้างท้าย
    • SMTP ไม่ต้องใส่ก็ได้ ส่วนพวก Country, GeoCode หรือ Locale ใช้ตาม default ไปก่อนได้ แต่ส่วนของ PATH และ URL ต้องใส่ให้ครบ
  8. เมื่อคอนฟิกทุกอย่างสำเร็จแล้ว ก็เปิดเบราว์เซอร์ขึ้นมา เข้าไปที่ admin > modules เพื่อเปิดใช้โมดูล CiviCRM
  9. มาถึงตรงนี้ผมเจอปัญหา Memory Exhausted ค้นเจอใน FAQ ว่าเป็นเพราะ PHP ของเรากำหนด Memory ไว้แค่ 8 เมก ซึ่ง CiviCRM ต้องใช้ขั้นต่ำ 24 เมก (แนะนำ 32 เมก)

    วิธีแก้คือเปลี่ยนค่าใน php.ini ซึ่งแต่ละดิสโทรจะไม่เหมือนกัน (ลอง locate หากันดู) ของ Ubuntu Dapper อยู่ที่
    /etc/php5/apache2/php.ini

    แล้วเริ่มการทำงานของ Apache ใหม่อีกครั้ง โดยสั่ง

    apache2ctl restart

  10. เท่านี้ CiviCRM ควรจะโผล่มาให้เห็นในเมนูของ Drupal แล้ว จะให้สะดวกก็เข้าไปใน admin > block เพื่อเปิดใช้ block ของ CiviCRM ที่เพิ่มเข้ามา

ความรู้สึกหลังติดตั้งเสร็จก็เหมือนพี่บัง คือมันยากไป คอนฟิกเยอะเกินไป ขนาดผมลง Drupal มานับครั้งไม่ถ้วนยังต้องเปิดคู่มือทำตามยิกๆ แล้วถ้าเอาไปลงตามหน่วยงานบรรเทาสาธารณภัยต่างๆ (ที่ไม่มีผู้เชี่ยวชาญไอที) คงลำบากทีเดียว

ส่วนตัวโปรแกรมนั้น เท่าที่ลองดูแป๊บๆ เรื่อง Unicode ยังไม่เจออะไรผิดปกติ แต่ก็เจอปัญหาของตัวโปรแกรมกับภาษาไทยแล้วคือการ sorting โปรแกรมใช้อักขระตัวแรกสุดมา sort โดยไม่สนใจว่าจะเป็นพยัญชนะหรือสระนำ (เช่น ไ โ ใ เ) ตรงนี้ต่างกับวิธีปกติที่เราจะสนใจพยัญชนะตัวแรก

อย่างนามสกุลผม "ไพรีพ่ายฤทธิ์" แทนที่จะใช้ "พ" เป็นตัว sort มันก็จะกลายเป็น "ไ" แทน อย่างนี้ล่ะครับ ปัญหานี้ใน MediaWiki (Wiki ที่ใช้ใน Wikipedia) แก้โดยการให้ผู้ใช้ระบุตัวที่ต้องการเองได้ ไม่รู้ของ CiviCRM มีทางออกซ่อนอยู่หรือเปล่า

พรุ่งนี้มาลองเล่นต่อ

ถ้าเป็นเมื่อก่อนสมัยที่เขียน Clipper บน Dos ก็จะเขียน function ในการ Sort ภาษาไทย
หาตัวที่เป็นพยัญชนะแล้วก็แยกไปเก็บอีก field นึง โดยคน input ไม่จำเป็นต้องมาสนใจตรงนี้ function ที่เขียนจะเป็นตัวจัดการเอง

ปัญหาน่าจะอยู่ใน MySQL ครับ ไม่ sensitive กับ locale

ดูประเด็น 1.4, 1.6 และ 1.8 ใน PHP Developers Meeting เดือน พ.ย. 2548

มือใหม่ข่วยทดสอบนะครับ :)

ลองเล่นดูแล้ว เห็นด้วยกับคุณ mk ทั้งหมด

การเรียงอักขระ ไม่ใช่ปัญหาของ mysql แต่เป็นปัญหาของโมดูลใน CiviCRM เอง
คงต้องตามไปแก้ที่ซอร์สโค้ด
( ปรับการเรียงใน mysql เป็น TIS-620 แล้ว
การเรียงใน phpmyadmin เรียงถูก แต่ใน CiviCRM เรียงผิด )

debian: etch
mysql: 5.0.20
apache2: 2.0.55
drupal: 4.7.1
php: 5.1.2

Thanks for post. Very useful.

ด้วยความเคารพนะครับ ผมอาจะเห็นไม่ค่อยจะตรงสักหน่อย ตรง ลงยากใหม สำหรับผมจริง ๆ ไม่ถือว่ายากนะ ค่อนข้างปกติ แต่มันแปลก ๆ ตรงต้องให้เลือก version นี่แหละ นอกนั้นก็เหมือน cms ทั่ว ๆ ไปนะ

โดยส่วนตัวแล้วทำ CRM อยู่ และก็ค่อนข้างชอบ Civi เอามาก ๆ เพราะผมมองว่ามันเป็น CRM แบบใหม่ที่เกิดมาเพื่อน Social Network และ Community โดยเฉพาะ ซึ่งมีจุดแข็งแตกต่างจาก CRM ตัวอื่น ๆ ข้องข้างมาก

Post new comment

The content of this field is kept private and will not be shown publicly.