First post with WP mobile app.

หลังจากที่ซื้อ iphone5 มา ด้วยคอนเซ็ปที่ว่าอยากจะเขียนแอพมือถือ, เพราะนอกจากมันจะเป็น device สำหรับเทสแอพแล้ว มันเป็นสิ่งสำหรับใช้ให้ผมเรียนรู้ และทำความเข้าใจพฤติกรรมของผู้ใช้สมาร์ทโฟนด้วย.

ตอนนี้เริ่มจากพวกแอพ social พื้นฐานหลักๆ ก่อน เช่น Facebook, Twitter, Line, WhatsApp, Instagram, FourSquare มีไรอีกหว่า…?

หลังจากที่ใช้ social media แต่ละตัวไปได้สักพัก ก็เลยทำให้นึกถึงบล็อคนี้ขึ้นมาได้, เพราะว่าแต่ละตัวก็จะมีคุณสมบัติเด่นของมันในแต่ละด้าน แต่สิ่งที่ยังขาดไป ก็คือบล็อคเนี่ยแหละ. ก็เลยเข้า app store ไปเสิร์ซหาแอพสำหรับ WP. เยี่ยมไปเลย! มันมี app ที่เป็น Official ของ WP ด้วย. โพสนี้ก็เลยเป็นโพสแรก ที่โพสด้วยแอพ WordPress บน iphone ล่ะ.

คงจะได้มาโพสอะไรไร้สาระมากขึ้นในนี้ จะได้หัดพิมพ์ภาษาไทยใน iOS6 ที่ปุ่มเล็กโคตรนี้ ให้คล่องขึ้นด้วย อิอิ.

เปิด/ปิด register_globals ต่างกันอย่างไร

สมัยก่อน (PHP รุ่นก่อนเวอร์ชั่น 4.2.1) ตัวแปรที่ส่งมาจากภายนอก ( GET, POST ) และตัวแปร SESSION จะใช้ปนกับตัวแปรที่ใช้ภายในโปรแกรมเลย

ต่อมาหลังจากเวอร์ชั่น 4.2.1   php ก็ได้พัฒนาให้การรับค่าตัวแปรรัดกุมขึ้น โดยใช้ตัวแปรแยกออกมาสำหรับ GET, POST และ SESSION แต่ก็เปิดให้ผู้พัฒนาเว็บไซต์สามารถเลือกกลับไปใช้แบบเก่าได้ ด้วยการเปิด register_globals ซึ่งสามารถตั้งในไฟล์ .htaccess   หรือถ้าเป็นเซิร์ฟเวอร์ของคุณเอง คุณสามารถที่จะตั้งใน php.ini ก็ได้ เพื่อให้มีผลกับทั้งเซิร์ฟเวอร์

Continue reading “เปิด/ปิด register_globals ต่างกันอย่างไร”

ปัญหา Query หนักใน plugin post-views ของ WordPress

วันก่อนเซิร์ฟเวอร์เครื่องหนึ่งเกิดปัญหาโหลดขึ้นสูงอย่างหนัก จึงได้เข้าไปตรวจสอบ

พบว่าสาเหตุเกิดจาก เว็บไซต์ลูกค้ารายหนึ่ง ใช้ WordPress และมีคนเข้าจำนวนมาก เค้าได้ติดตั้ง plugin ที่มีชื่อ post-views เข้าใจว่ามันจะทำการนับ stats และแสดงรายการ posts ที่มีคนเข้าชมเยอะ ไรประมาณนั้น

ใน Query ที่ plugin มันเขียน มันใช้ SELECT ใหม่ทุก โดยใช้ WHERE ระบุเป็นเงื่อนไขเวลาที่ละเอียดเป็นวินาทีเลย.  ผมเลยลองเข้าไปแก้ให้ Query มัน WHERE โดยใช้เวลาเป็น floor ที่ interval=20 minutes  เพราะตอนแรกเดาว่ามันน่าจะได้ประโยชน์จาก MySQL query cache  แต่ปรากฎว่าไม่ช่วยแฮะ ไม่รู้ว่า result มันขนาดเกิน cache limit หรือเปล่า

ผมเลยแก้ให้มันเขียน result ลงไฟล์แทน โดยใช้ serialize

ต้องสร้างโฟลเดอร์ /wp-content/plugins/post-views/cache/ และเปิดสิทธิ์ให้ php เขียนไฟล์ในโฟลเดอร์นี้ได้ด้วย

อันนี้เป็นไฟล์ที่ผมแก้แล้ว  แก้ 2 จุดครับ ประมาณบรรทัดที่ 2243 และ 2412 ครับ (ดาวน์โหลด post-views.php)

ปัญหาโหลด php_mysql.dll ในเครื่อง Windows 7 64bit

ปรกติแต่ก่อนใช้ AppServ ในการติดตั้ง Web Server ในเครื่องตัวเอง. แต่ตอนหลังชอบที่จะติดตั้งเองมากกว่าครับ เพราะว่าจะได้ใช้ซอร์ทแวร์เวอร์ชั่นล่าสุดในแต่ละตัว.

ล่าสุดที่ติดตั้งไปนั้น มีดังนี้ครับ

  1. Apache 2.2
  2. PHP 5.2.17
  3. MySQL 5.5.22
ทุกทีก็ไม่มีปัญหานะครับ แต่ล่าสุดนี่งงมากว่าทำไมอยู่ดีๆ เป็นแบบนี้ มันโหลด library mysql และอื่นๆ บางตัวไม่ได้ครับ โดยจะขึ้นใน error.log ลักษณะนี้
PHP Warning:  PHP Startup: Unable to load dynamic library ‘C:/Wamp/php5/ext\\php_mysql.dll’ – The specified module could not be found.\r\n in Unknown on line 0
ทั้งๆ ที่ก็มีไฟล์ php_mysql.dll อยู่ในพาทดังกล่าวครับ. ลองเสิร์ซๆ ดูก็เลยไปพบกับ tools ตัวนึงชื่อว่า Dependency Walker ครับ. ไม่ต้องติดตั้ง สามารถใช้ได้เลยครับ โดยคุณสามารถดาวน์โหลดได้ที่นี่ http://www.dependencywalker.com/
การทำงานของมัน คือ คุณโยนไฟล์ .dll ที่มีปัญหาโหลดไม่ได้เข้าไป มันจะตรวจให้ว่าเราขาดไฟล์ library (.dll) ตัวไหนไปครับ  ก็ไปหาโหลด หรือหาในเครื่องเรานี่แหละ มาวางในโฟลเดอร์ ./ext ให้มันครบครับ
อย่าง php_mysql.dll ของผมมันฟ้องว่ามันหา libmysql.dll ไม่เจอครับ
สุดท้ายผมเอาไฟล์  libmysql.dll  จากในโฟลเดอร์ php ไปวางใน C:\Windows ครับ  ก็สามารถแก้ปัญหาได้เรียบร้อยคร้บ

จดโดเมน .in.th , .co.th , .go.th

สำหรับผู้ที่ต้องการจดทะเบียนโดเมน .in.th , .co.th และ .th อื่นๆ และกำลังมองหาผู้ให้บริการ  ผมขอแนะนำบริการจดทะเบียนโดเมนที่ P&T Hosting เลยครับ จดโดเมน .in.th นอกจากว่าที่นี่จะรับจดทะเบียนในราคาประหยัดแล้ว ยังมีบริการเสริมที่ทาง P&T Hosting ทำเพิ่มมาให้พิเศษอีกด้วยครับ ได้แก่ บริการ Domain Forwarding และ DNS Management (หรือการตั้งค่า Zone Records) ซึ่งปรกติแล้วโดเมน .th จะไม่มีบริการตรงนี้ให้นะครับ คุณจะต้องใช้โดเมน .th ร่วมกับโฮสติ้งเท่านั้น

พอมีบริการลักษณะนี้ เท่ากับว่าคุณจดเฉพาะโดเมนเนม .th ก็สามารถนำไปสมัครอีเมล Google Apps หรือ Windows Live เพื่อสร้างอีเมล @ชื่อโดเมน.in.th ของคุณได้เลย โดยที่ไม่ต้องมีโฮสติ้งเลยครับ เท่ากับว่าในแต่ละปีคุณก็เสียแค่ค่าโดเมนประมาณสามกว่าบาทเท่านั้น เข้าไปดู ราคาโดเมน .th ปัจจุบันได้เลยครับ