Wednesday, April 18, 2007

Cannot Delete Files with "apache" Owner

ผมใช้ Bytehoard ตั้งใจว่าจะใช้ manage files บน web แต่ปรากฎว่าเวลา upload files ขึ้นไปจะถูก set owner เป็น apache และ permission เป็น rw------- ซึ่งทำให้ใช้ plesk ลบไม่ได้และก็ download ไม่ได้ด้วย ผมว่าเป็นปัญหาที่เกิดจากสองส่วนด้วยกัน อันแรกคือตัว host เองซึ่ง run php เป็น module ทำให้เวลา spawn child process ออกมาจะมี user เป็น apache ซึ่งผมไม่รู้ว่ามีทาง config ให้ set user/group ให้เป็น user ที่ลูกค้าใช้ได้หรือเปล่า เพราะลองอ่านหนังสือ apache ดูเห็นมี directive AssignUserID สำหรับ Virtual Host อยู่ ไม่รู้ถ้าทาง hosting set อันนี้จะ OK หรือเปล่า อีกส่วนหนึ่งก็คงเป็นเพราะตัว script ของทาง Bytehoard เองที่ไม่รู้ทำไมไป set permission แบบนั้น อาจจะเป็นด้วยเหตุผลด้าน security แต่ก็ถือว่าทำไม่สมบูรณ์เพราะอย่างน้อยก็ทำให้ผม download file ที่ผม upload ขึ้นไปไม่ได้ คือได้ file มาแต่ size เป็น 0

workaround ที่ผมใช้ในการลบ files พวกนี้ก็คือเข้าไปใน plesk filemanager แล้วหา file ที่มี owner เป็น apache แล้วก็ทำการ edit เพื่อใส่ script unlink() กับ rmdir() เข้าไปแล้ว run script นี้ อย่าลืมว่าต้องใช้ absolute path เป็น parameter คือเริ่มตั้งแต่ /home/vhosts/.... (check ดูใน phpinfo())

directory cache กับ upload ของ wordpress ก็มี owner เป็น apache เหมือนกันแต่ดูเหมือน wordpress set permission ได้ถูกต้องจึงไม่มีปัญหาแต่อย่างใด

เพิ่มเติมตัวอย่าง php script ที่ใช้ จะมีทั้ง unlink, rmdir และ chmod ส่วน chown นั้นใช้ไม่ได้ เพราะต้องเป็น root เท่านั้น

echo unlink("/home/httpd/vhosts/greatnote.com/httpdocs/..")? "success" : "fail";
echo rmdir("/home/httpd/vhosts/greatnote.com/httpdocs/..")? "success" : "fail";
echo chmod("/home/httpd/vhosts/greatnote.com/httpdocs/..",0777)? "success" : "fail";


สำหรับ chmod ต้องเป็นสี่หลักนะครับคือ 0777 ถ้าเป็น 777 จะไม่ได้

Monday, April 16, 2007

UTF8 and MySQL 5.0 Problem

ลืมเรื่อง set default-character-set หรือ collation หรือ init-connect settings ใน my.ini ไปได้เลย นั่ง set มาทั้งคืน ไม่ได้มีผลเปลี่ยนอะไรเลย สุดท้ายแค่ใส่ skip-character-set-client-handshake เข้าไปใต้ [mysqld] ก็แก้เรื่องภาษาไทยได้เลย ที่ผมต้องพยายามหาทางให้ได้เพราะผมไม่อยากไปเปลี่ยน code ใน wp-db.php และผมแน่ใจว่า ข้อมูลใน database เป็น utf8 จริงๆ แต่แน่นอนแหละครับ พอเอาไปขึ้น host ของคนอื่นก็ต้องเปลี่ยน wp-db.php นั่นแหละ

ใส่อันนี้เข้าไป mysql_query("SET NAMES 'UTF8'"); ก่อน $this->select($dbname);

Saturday, April 14, 2007

Akismet Plugin

เห็นมาตั้งนานแต่ก็ไม่ได้ลอง activate plugin ตัวนี้สักที ต้องมี Wordpress API Key เพื่อ activate ด้วยโดยจะต้องลงทะเบียนที่ wordpress.com ของผมเคยลงไว้นานแล้วได้ anuchit.wordpress.com มา พอ activate แล้วไปที่ Manage Akismet Spam ปรากฎว่าเจอ Spam ตั้ง 200 ตัวแหนะ ขนาดผมลบอยู่เรื่อยๆนะเนี่ย Plugin ตัวนี้มันจะลบ Spam เองทุก 15 วัน น่าจะประหยัดเวลาผมไปเยอะ

Thai Line Breaking in Firefox

ผมไม่ได้หามานานและทนใช้ firefox original แบบตัดคำไทยผิดๆถูกมาตลอด ล่าสุดลอง google ดูและ download extension อันนี้มาใช้เป็นของ http://www.osdev.co.th/ โดยผมใช้ firefox version 2.0.0.3 ปรากฎว่าใช้ได้ดีครับ blog ผมดูสะอาดขึ้นเยอะเลย

Friday, April 13, 2007

Air Condition Maintenance

เวลาล้างแอร์ก็ให้ถอดหน้ากากออกให้หมดจนเห็น fan coil ด้านในแล้วเอาผ้าพลาสติกหุ้ม ต้องดันแอร์ออกเล็กน้อยเพื่อให้ยึดผ้าพลาสติกได้ เห็นช่างเอาหกเหลี่ยมดึงด้านล่างออก แล้วค่อยยกขึ้นนิดหนึ่ง ด้านล่างข้างหลังจะเกี่ยวเอาไว้กับแผงที่ยึดกับผนังอีกที ต้องค่อยๆขยับไปมา ไม่น่าจะยากเกินไป เอาผ้าเช็ดตัวหนาๆคลุมส่วนที่เป็นไฟฟ้าไว้แล้วฉีดน้ำล้าง แล้วตามด้วยฉีดผงซักฟอกล้าง อย่าลืมอัดน้ำเข้าไปในท่อระบายน้ำทิ้งด้วย พอล้างข้างในเสร็จก็ไปล้างที่คอยล์ร้อน โดยต้องล้างไปในแนวเดียวกับที่พัดลมเป่า ก็คือฉีดน้ำจากด้านในออกด้านนอก เวลาฉีดน้ำนั้นสำคัญมากก็คือให้ฉีดในแนวตั้งฉากกับพวกฟินคอยล์เย็นเพื่อไม่ให้เกิดการบิดตัวเพราะฟินพวกนี้บอบบางมาก ถ้าฉีดแนวเฉียงจะทำให้ฟินพับไปหมด สำหรับคอยล์ร้อนถ้าฉีดแนวตั้งฉากไม่ได้(ด้านล่างๆ) ก็ให้ฉีดจากบนลงล่างในแนวเดียวกัน อย่าลืมเอาอะไรคลุมส่วนที่เป็นไฟด้วย จากนั้นให้เอา blower เป่าทั้งข้างในและข้างนอกให้แห้งสนิท

เวลาทำงานพวกนี้ให้เช็คก่อนว่าไม่มีไฟจริงๆ แม้จะปิดเบรกเกอร์แล้วก็ต้องเอาไขควงเช็ำคไฟเช็คก่อนด้วย และอย่ายืนบนน้ำ อย่างน้อยให้ใส่รองเท้ายางเวลาทำงานพวกนี้ เพราะบางทีอาจจะมีการต่อไฟไว้ผิดคือ L เป็น N และ N เป็น L ถ้าต่อผิดด้วยและมีการช็อตไปยังโครงแอร์อยู่พอไปจับและยืนบนน้ำก็แย่แน่ๆ พยายามจัดสภาพแวดล้อมในการทำงานให้ดีและเป็นระเบียบ อย่ารก มีสติและไม่รีบร้อนครับ