PHP 5 + MySQL settings on Windows


ปวดหัวนิดหน่อย นั่งเซตให้ 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”

  1. search path ของ unix มันไม่รวม . ให้ ต้องใส่เอง แต่ของ windows มันรวมให้อัตโนมัติ?

  2. ที่ว่าลองกับ Apache 2.0 นี่ ก็เป็น Apache บน Windows ครับ

  3. เพิ่งจะปล้ำกะมันเสร็จเมื่อคืนฮะรู้งี้โหลด zip package มา set แต่แรก ก็จบไปละเฮ้อ!

  4. ขอบคุณครับ กำลังต้องการแบบนี้อยู่พอดี

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.