เปิด/ปิด 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 ปัจจุบันได้เลยครับ

Joomla 1.5.20 + SMF 1.1.11 (Bridge: jFusion 1.5.1)

บันทึกนี้ไม่ใช่วิธีติดตั้ง แต่เป็นบันทึการติดตั้งของผมเท่านั้น เพราะติดตั้งเสร็จแล้ว ผมก็ยังรู้สึกมันยังใช้งานไม่สมบูรณ์

Continue reading “Joomla 1.5.20 + SMF 1.1.11 (Bridge: jFusion 1.5.1)”

Google Apps ไม่สามารถกด Activate E-mail Service ได้

อาการคือมันกด แล้วมันก็อยู่ที่หน้าเดิม…. -*-

วิธีแก้…

จากหน้า Dashboard ให้คลิกเข้าที่ Email

เข้าที่ Instructions on how to activate Email

เข้าที่ Change MX records