Monday, October 24, 2011

IIS 6.0 with FastCGI + PHP

ปกติประสิทธิภาพในการรันเว็บที่เป็นภาษา PHP บน IIS จะสู้บน apache ไม่ได้ เพราะบน IIS มีรูปแบบการสั่งงานที่รองรับแบบ CGI ที่ทำงานได้ช้ามาก หรือจะให้ดีหน่อยก็สามาถใช้แบบ ISAPI ได้ แต่ก็ทำให้เว็บ PHP ทำงานได้ไม่ถูกต้อง มาวันนี้ไมโครซอฟท์พึ่งจะได้ออกส่วนเพิ่มเติมของ IIS ให้สามารถใช้ FastCGI ได้แล้ว ประสิทธิภาพที่ดีขึ้นแบบเห็นได้ชัด การทำงานก็ปกติ กิน ram น้อยไม่เหมือนตอนรันแบบ ISAPI มาดูวิธีติดตั้งกัน

* สมมติว่าได้ติดตั้ง php ไว้แล้วที่ c:\php และมีไฟล์ php-cgi.exe
อันดับแรกไปโหลด FastCGI Handler for IIS 6.0 มาก่อน
fcgisetup32.msi
โหลดเสร็จแล้วให้เีรียกติดตั้งเลย ไม่มีอะไรมากมาย
เมื่อติดตั้งแล้วจะพบ 3 ไฟล์นี้ C:\Windows\system32\inetsrv\
  • fcgiext.dll
  • fcgiext.ini
  • fcgiconfig.js
ขั้นตอนต่อไปเพิ่ม fcgiext.dll ลงใน extension mapping สำหรับไฟล์ .php
IIS > Web Sites > properties > Home Directory > Configuration… > Add…

ต่อไปเปิดไฟล์ fastcgiext.ini ขึ้นมาแก้ ใส่ตอนท้ายๆ ไฟล์
[Types]
php=PHP

[PHP]
ExePath=c:\php\php-cgi.exe

สำหรับ option อื่นสามารถดูได้ในไฟล์ fsgiext.ini

ขั้นตอนสุดท้ายให้แก้ไขไฟล์ php.ini โดย แก้บรรทัดนี้
fastcgi.impersonate = 1


RESTART IIS เสร็จ ก็ใช้งานได้เลย

No comments:

Post a Comment