PHP-MySQL on IIS7 (Vista) 01
หลังจาก ที่เคยทดสอบ PHP, MySQL บน Windows XP มานานพอสมควร พออัพเกรดเวอร์ชั่นของ PHP, MySQL เป็นเวอร์ชั่นที่สูงขึ้นก็ต้องใช้วิธีการอีกแบบหนึ่งที่ได้แนะนำไปแล้ว คราวนี้พอเปลี่ยนเวอร์ชั่นของวินโดว์จาก XP มาเป็นดาวรุ่งดวงใหม่ Windows Vista Enterprise ก็เจอปัญหาอีกแล้ว เป็นปัญหาของการเปลี่ยนเวอร์ชั่นใหม่ของ IIS เป็นรุ่นที่ 7 และความไม่คุ้นเคยจากหน้าตาที่เปลี่ยนไปเลยงงหนักเข้าไปอีก
ทุก ปัญหาต้องเจอทางออก ถ้าคิดนอกกรอบ ใจเย็น รอบคอบ ทดลองแล้วใช้ได้เลย ตัวอย่าง นี้ทดลองบนวินโดว์วิสต้าเวอร์ชั่นสูงสุดสำหรับใช้ส่วนบุคคลในองค์กรคือ Enterprise และเหมือนเดิมคือต้องไปดาวน์โหลด PHP เวอร์ชั่นล่าสุดที่เป็นไฟล์ซิป (ไม่ใช่ตัวติดตั้ง Installer ในตัวอย่างผมใช้ไฟล์ php-5.1.6-Win32.zip และ pecl-5.1.6-Win32.zip สำหรับ Extension) เพื่อนำมาติดตั้งเองด้วยมือแบบ manual จากเว็บไซต์ www.php.net
ได้ มาแล้วก็คลายไฟล์ทั้งหมดลงในไดรว์ซี แก้ไขชื่อโฟลเดอร์ให้สั้นจำง่ายเป็น C:\inetpub\php เพื่อทำการติดตั้งต่อไปตามขั้นตอนต่อไปนี้ครับ
- สร้าง โฟลเดอร์ชื่อ uploadtmp และ sessiontmp ไว้ภายในโฟลเดอร์ C:\inetpub\php และกำหนดสิทธิให้กับ Everyone สามารถจัดการได้แบบ Full control
- จัดการก็อบปี้ไฟล์ php.ini-dist ไปไว้ในโฟลเดอร์ C:\windows และเปลี่ยนชื่อใหม่เป็น php.ini แล้วทำการแก้ไขไฟล์ดังนี้
บรรทัด
;output_buffering = Off
แก้เป็น
output_buffering = 4096
บรรทัด
register_globals = Off
แก้ไขเป็น
register_globals = On
บรรทัด
;doc_root =
แก้ไขเป็น
doc_root =
บรรทัด
extension_dir = "./"
แก้ไขเป็น
extension_dir = "C:\Inetpub\PHP\ext"
บรรทัด
; cgi.force_redirect = 1
แก้ไขเป็น
cgi.force_redirect = 0
บรรทัด
upload_tmp_dir =
แก้ไขเป็น
upload_tmp_dir = C:\Inetpub\PHP\uploadtmp
บรรทัดตรง extension เลือกเอาเครื่องหมาย ( ; ) ที่อยู่ข้างหน้าออก ตามที่ต้องการใช้ ส่วนใหญ่ก็สามตัวนี้
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
บรรทัด
;sendmail_from = me@example.com
แก้ไขเป็น
sendmail_from = me@localhost.com
บรรทัด
;session.save_path = "/tmp"
แก้ไขเป็น
session.save_path = "C:\Inetpub\PHP\sessiontmp"
จากนั้นก็จัดการเซฟไฟล์นี้ (ถ้าเซฟไม่ได้ต้องเข้าไปกำหนดใน properties ของไฟล์ให้สิทธิ Everyone สามารถเขียนได้นะครับ) - ขั้น ตอนต่อไปคือการกำหนดให้ IIS7 รู้จักภาษา PHP และทำงานได้ถูกต้อง เริ่มต้นด้วยการเปิด IIS7 ขึ้นมาก่อน ผ่านทาง Administrative tools > Internet Information Services (IIS) Manager ดังภาพ (เริ่มงง เพราะหน้าตาเปี๋ยนไป มันต่างจาก IIS5 - 6 อย่างสิ้นเชิง)
- มี หัวข้อที่ต้องจัดการเรียงลำดับคือ ISAPI filters, ISAPI and CGI Restriction, Default Document, Handler Mappings เริ่มต้นที่ ISAPI filters ดับเบิ้ลคลิกเลือก Add จะพบกรอบด้านล่าง ใส่ชื่อ Filter name: เป็น PHP และ Excutable: คลิกปุ่มบราวซ์เพื่อเลือกไฟล์ C:\inetpub\php\php5isapi.dll
- ISAPI and CGI Restriction ดับเบิ้ลคลิกเลือก Add จะพบกรอบด้านล่าง ให้กำหนด ISAPI and CGI path: คลิกปุ่มบราวซ์เพื่อเลือกไฟล์ C:\inetpub\php\php5isapi.dll Description: PHP อย่าลืมคลิกเลือก Allow extension.. แล้วคลิกปุ่ม OK
- ในหัวข้อนี้ ISAPI and CGI Restriction ให้คลิกเลือก Edit เพื่อกำหนดการทำงานของสคริปต์ดังภาพ คลิก OK
- ที่ หัวข้อ Handler Mappings ดับเบิ้ลคลิกเลือก Add Script map จะพบกรอบด้านล่าง ใส่ชื่อ Request path: เป็น *.php และ Excutable: คลิกปุ่มบราวซ์เพื่อเลือกไฟล์ C:\inetpub\php\php5isapi.dll อีกครั้งและใส่ Name เป็น PHP คลิกปุ่ม OK
- จะมีกรอบถามยืนยันว่าจะให้ สิทธิในการทำงานของสคริปต์ ISAPI extension หรือไม่ ให้คลิก Yes เพื่อให้ระบบอนุญาตการทำงาน (Allowed)
- หัวข้อ Default Document ใช้เพื่อกำหนดชื่อไฟล์แรกในการเรียกเว็บไซต์ ในที่นี้ให้เพิ่ม index.php เข้าไปแล้วคลิกที่ Apply ด้านขวามือ
- เป็น อันเสร็จสิ้นการปรับแต่ง IIS ให้ปิด IIS Manager ไปและไปที่ My Computer เลือก Properties > Advanced System Setting > Environment variables
- Environment variables ให้คลิกที่ Path เลือก Edit แล้วเติมพาธของ PHP ต่อท้ายลงไปคือ C:\inetpub\php; ดังภาพ คลิก OK > OK แล้วปิดหน้านี้ไป รีสตาร์ทเครื่องสักครั้งหนึ่ง
- เขียนไฟล์ php เพื่อทดสอบการติดตั้ง โดยใช้ Notepad เขียนดังตัวอย่าง
จัด เก็บไฟล์ในชื่อ phpinfo.php เรียกผ่านบราวเซอร์ด้วยการพิมพ์ http://localhost/phpinfo.php ถ้าแสดงผลดังภาพข้างล่างก็แสดงความยินดีด้วย คุณติดตั้ง PHP ได้สำเร็จ