วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

Squirrelmail เป็น IMAP Client Webmail แบบมาตราฐาน ทำงานบน PHP ซึ่งติดตั้งง่าย ใช้งานได้รวดเร็ว ไม่ต้องกังวลเรื่องความเข้ากันได้กับ Web Browser ของผู้ใช้หลากหลาย เพราะไม่ค่อยมีการใช้งานพวก JavaScript มีความง่ายในการต่อขยายความสามารถ โดยผู้พัฒนาเปิดให้เขียน Plugin ได้ง่าย โดยไม่ต้องแก้ไข Code ของระบบโดยตรง ด้วยวิธีการเสียบ Code ผ่านจุดที่กำหนด ที่เรียกว่า “Hook” ทำให้ Plugin ที่เขียนขึ้น สามารถใช้งานต่อไปได้ แม้มีการปรับรุ่นของ Squirrelmail ต่อไป ตัวอย่างการเขียน Squirrelmail Plugin เพื่อแสดงความเร็วในการประมวลผลในแต่ละส่วนของ Squirrelmail ใช้ชื่อว่า pagespeed (ทำงานบน Squirrelmail 1.4.x) สร้าง folder ชื่อ pagespeed สร้างไฟล์ index.php เอาไว้เฉยๆ สร้างไฟล์ setup.php , … Read more

ติว “การจัดการห้องบริการคอมพิวเตอร์และสำนักงาน”

กิจกรรมของ CoP PSU sysadmin ของเราในลำดับต่อไป จะจัดขึ้นในวันที่ 31 ม.ค. 56 (พฤหัส) เวลา 09.00 – 16.00 น. มีอาหารเที่ยงเลี้ยง ที่ห้อง 101 อาคารศูนย์คอมพิวเตอร์ ม.อ.หาดใหญ่ (หมายเหตุ วันที่ 30 ม.ค. 56 ทีมวิทยากรจะเตรียมห้องอบรมด้วยกัน) หากท่านสนใจรีบแจ้งอีเมลมาที่ผมโดยตรง ( wiboon.w@psu.ac.th ) หรือทางเฟสบุ๊คของกลุ่ม และผมจะนำรายชื่อมาใส่ไว้ด้านล่างของบล็อกนี้ (ดูรายชื่อผู้เข้าร่วมติว) ติว “การจัดการห้องบริการคอมพิวเตอร์และสำนักงาน” กลุ่มเป้าหมาย ผู้ดูแลระบบคอมพิวเตอร์และเครือข่ายของม.อ.วิทยาเขตต่างๆ ระยะเวลา 1 วัน สถานที่และเครื่องคอมพิวเตอร์ที่ใช้ ต้องใช้ห้องอบรมที่มีเครื่องคอมพิวเตอร์จำนวน 2 เครื่องต่อผู้เข้าอบรม 1 คน เนื้อหา เป็นเรื่องราวเกี่ยวกับการนำโอเพนซอร์สและฟรีแวร์ มาประยุกต์ใช้ในการจัดการห้องบริการคอมพิวเตอร์และสำนักงาน แนะนำโปรแกรม pGina บนวินโดวส์ เพื่อควบคุมการใช้เครื่องคอมพิวเตอร์ โดยใช้ radius server … Read more

การเปลี่ยนชื่อ group mail ใน mailman

ในการใช้ mailman เพื่อการให้บริการ Mailing List หรือ Group Mail นั้น การเปลี่ยนชื่อกลุ่มนั้น ค่อนข้างยุ่งยาก แต่สามารถทำได้ง่ายกว่า โดยการสร้าง List ใหม่แล้ว เอา Config และ Member เดิมมาใส่ ขอยกตัวอย่าง กรณี จะเปลี่ยน group name ของกลุ่มคณะ วจก. ซึ่งเดิมจะขึ้นต้นด้วย mgt-* ให้ไปเป็น fms-* ก็จะใช้ Shell Script ตามนี้ oldname=”mgt” newname=”fms” owner=”admin.name@psx.ac.th” password=”xxxxxx” for line in $( /usr/lib/mailman/bin/list_lists | grep -i “$oldname-“|awk ‘{print $1}’) ; do /usr/lib/mailman/bin/config_list -o $line.txt … Read more

How Cyrus Murder (Mail Clustering) work?

ต่อจาก Mail Clustering with Cyrus Murder เมื่อ Backend ทำการ Restart หรือมีการเปลี่ยนแปลงเกี่ยวกับ Mailbox เครื่อง backend01 และ backend02 ทำการรายงาน mailbox ทั้งหมดในเครื่องของตนเอง ให้ mupdate ทราบ จากนั้น mupdate ก็จะทราบว่า ทั้ง Cluster มี mailbox อะไรและอยู่ที่ใด โดยเครื่อง backend01 และ backend02 จะ Login ด้วย User ที่สร้างไว้ใน mupdate ก่อน จากนั้นจึงสามารถทำการ Synchronize ข้อมูล mailbox ไปยัง mupdate ได้ เมื่อ Mail client ติดต่อใช้บริการ IMAP/POP มายัง Frontend Server   1. … Read more

การใช้งาน error_log() ของ PHP ในการบันทึกค่าต่างๆ

ในการเฝ้าระวังระบบที่เป็น PHP Web Application บางครั้งก็ต้องการเก็บค่าบางอย่างลง Log file ทำไงดี ? อาจจะใช้วิธี สร้างไฟล์ไว้ในพื้นที่ ที่ web user สามารถเขียนได้ แล้วก็จัดการเอง ด้วย function พวก fopen(), fwrite(), fclose(); เช่น $fp = fopen(‘/var/log/mylog.txt’, ‘a’); fwrite($fp, ‘20121207:some text’); fclose($fp); เป็นต้น ซึ่ง ก็พอจะทำได้ แต่ต้องคำนึงถึงเรื่อง permission ในการเขียน และพวกสิทธิต่างๆ ใน PHP เราสามารถบันทึกสิ่งต่างๆลงไปในไฟล์ System Log ได้เลย โดยใช้ฟังก์ชั่น error_log นอกจากนั้น ยังสามารถเลือกให้เป็นการส่ง email แทนการเขียน log ลงไฟล์ก็ได้ หรือ จะเลือกเขียนลงไฟล์อื่นที่แยกไปจาก System Log ก็ได้ การใช้งาน error_log(message, … Read more