ปวดหัวนิดหน่อย นั่งเซตให้ PHP 5 ใช้ MySQL ได้
ปัญหามันเริ่มมาจาก PHP 5 เค้าไม่ได้รวมฟังก์ชั่น MySQL เอาไว้ในตัว แต่แยกเป็นโมดูลต่างหาก แล้วก็ไม่ได้เปิดไว้เป็น default ก็เลยต้องเซตเจ้า php.ini กันหน่อย
ทีนี้ เหมือนไอ้ php.ini มันก็ต๊อง ๆ คือทำอะไรไม่ค่อยเหมือนที่คิดเท่าไหร่ มีคนบ่นกันเยอะ
หลังจากมั่ว ๆ อยู่พักนึง (เคยลองแล้วเมื่อหลายวันก่อนกับ Apache 2.0 แต่ไม่สำเร็จ วันนี้ลองใหม่กับ IIS ที่มากับ Win XP) ก็ได้ความ
ก่อนอื่นต้องไปดาวน์โหลด zip package ของ Windows มาลงก่อน. เน้นว่า zip package เพราะตัว installer ไม่มีโมดูล MySQL ให้นะ (หรือถ้าอยากลงง่าย ๆ ก็เอาตัว installer มาลงก่อน แล้วก็อปไฟล์จาก zip package ทับ ก็เร็วดี ได้เหมือนกัน)
จากนั้นก็ไปเซตไฟล์ php.ini, ปกติมันจะอยู่ใน C:\Windows
; โฟลเดอร์ที่เก็บไฟล์เว็บ, ถ้าใช้ IIS ไม่ต้องเซต ปล่อยว่างเลย doc_root = "D:\home\shared\wwwroot" ; โฟลเดอร์ที่เก็บโมดูลเสริม ของเดิมมันจะเป็น "./" extension_dir = "ext/" ; เอาคอมเมนต์ (;) ที่อยู่ข้างหน้าโมดูลด้านล่างพวกนี้ออก ; multi-byte string, ถ้าใช้ phpMyAdmin มันจะเตือน ถ้าไม่ยอมเปิดตัวนี้ extension=php_mbstring.dll ; MySQL extension=php_mysql.dll
จะเห็นว่า มีการใช้ทั้ง / และ \ สำหรับ path, แถมเจ้า extension_dir ที่เซตมาให้ ก็ไม่ตรงกับเลย์เอาต์จริง ๆ ในแพ็คเกจ -_-“
แถมนิด เซตเจ้านี่ด้วยก็ดี include_path โดยเฉพาะถ้าคิดจะใช้ PEAR
include_path = ".;c:\dev\php\PEAR"
ถ้าปล่อยว่างไว้ ค่าปริยายมันจะเป็น “.;C:\php5\pear” … แต่ค่าปริยายของตัว installer เวลาติดตั้ง PHP มันจะลงที่ C:\php นะ … ก๊า~ -_-“
สำหรับ phpMyAdmin ถ้าเปิดแล้วมีปัญหา ฟ้องว่า Access denied. #2003 – The server is not responding ทำนองนี้ ให้เปิดไฟล์ config.ini.php ของ phpMyAdmin ขึ้นมาแก้:
$cfg['Servers'][$i]['host'] = '.'; // MySQL hostname or IP address
ค่าเดิม ปกติมันจะเป็น ‘localhost’ แต่ผมใช้ไม่เคยได้เลย ‘127.0.0.1’ ก็ไม่ได้ แต่ใช้ ‘.’ แล้วได้แฮะ
อีกค่าที่ต้องแก้ตาม ไม่งั้น phpMyAdmin มันจะเตือนอีก ก็คือ
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';
ของเดิมมันจะว่าง ๆ โดย phpMyAdmin จะพยายามหาให้เอง แต่ไม่เวิร์กน่ะ ก็บอกมันไปหน่อย
ทั้งหมดที่ว่ามา เป็นการเซต PHP 5, MySQL, phpMyAdmin บน Windows XP สำหรับงานพัฒนาในเครื่องเดียวกันเท่านั้น ยังไม่เคยลองเซตให้มันเชื่อมไปเครื่องรีโมต อาจจะไม่เวิร์กก็ได้
ปัญหาอย่างนึงที่พบ ตอนที่ลองกับ Apache 2.0 คือ ถ้าเกิดเปลี่ยน extension_dir จากเดิม “./” ไปเป็นอย่างอื่นเนี่ย เจ้า PHP ก็จะหาพวกโมดูลที่อยู่ในโฟลเดอร์เดียวกะตัวมันเอง (.) ไม่เจอ -_-” แต่ IIS ไม่มีปัญหานี้แฮะ ก็งง ๆ ทั้ง ๆ ที่ใช้ตัว php-cgi.exe ตัวเดียวกันเลย
5 responses to “PHP 5 + MySQL settings on Windows”
ลำบากนัก ใช้ ก็สะดวกดีนะ
search path ของ unix มันไม่รวม . ให้ ต้องใส่เอง แต่ของ windows มันรวมให้อัตโนมัติ?
ที่ว่าลองกับ Apache 2.0 นี่ ก็เป็น Apache บน Windows ครับ
เพิ่งจะปล้ำกะมันเสร็จเมื่อคืนฮะรู้งี้โหลด zip package มา set แต่แรก ก็จบไปละเฮ้อ!
ขอบคุณครับ กำลังต้องการแบบนี้อยู่พอดี