ทำก็มีให้ต้องเปลี่ยนพอร์ทอีก เลยตัดสินใจเอา PHP มาลงโดยใช้ เป็นรูปแบบเป็น ISAPI เพื่อที่สามารถใช้งานได้ทั้งสอง
ระบบคือ PHP กับ .NET โดยไม่ต้องเปลี่ยน HTTP Server กว่าจะทำได้เกือบทั้งวัน เพราะมันไม่ยอมทำงานไม่ว่า
จะลองดาวน์โหลดเป็น MSI มาติดตั้ง หรือ ติดตั้งเป็นแบบ zip ไฟล์ นี่ก็เพิ่งรันได้ ก็เลยเขียน ขึ้น blog เลยดีกว่า เผื่อใคร
ทำดูแล้วติดปัญหา ก็จะได้ประหยัดเวลาไป
ปัญหาที่เกิดคือ HTTP 500 Internal server Error แต่ไม่มี error ใน log file ให้ debug เลย
ดาวน์โหลดไฟล์
ไปดาวน์โหลด php มาได้จาก php zip version extract ไฟล์ออกมาไว้ที่ c:\php
ไปดาวน์โหลด extension เพิ่มเติม ( pecl ) ไม่งั้นจะ error ว่าหา dll ไฟล์ไม่พบเพราะเนื่องจากตัว extension
หลายต่อหลายตัวต้องการ extension อื่นเข้าร่วมเพื่อประกอบการทำงานด้วย โหลดได้ที่นี่ครับ http://th.php.net/get/pecl-5.2.4-Win32.zip/from/a/mirror
extract ไปไว้ที่ c:\php\extras
Edit php configuration
rename file php.ini-recommanded ให้เป็น php.ini โดยก่อนทำก็แบ็คอัพไฟล์ต้นฉบับทั้งสองไฟล์ไว้ก่อน
กันเหนียว เผื่อมีอะไรผิดพลาดก็แก้ใหม่ได้ แล้วใช้ ก็อปปี้ extension list ตามนี้ไปใส่ใน ไฟล์ php.ini โดยไฟล์ราย
ละเอียดต้นฉบับผมเอามาจาก http://www.peterguy.com/php/install_IIS6.html พร้อมทั้งปรับแต่ง คอมเม้นท์
เพิ่มอีกหลายรายการเหมือนกัน เพราะเกิด error ซึ่ง error พวกนั้นผมยังไม่จำเป็นต้องใช้ ท่านใดต้องการคงต้องมีการติดตั้ง
กันเองทีหลัง
**php.ini ที่แก้ไขแล้ว
-----------------------------
extension=php_adt.dll
extension=php_amf.dll
;extension=php_apc.dll ; Alternative PHP Cache (http://pecl.php.net/package/APC) - significantly increases CPU load
extension=php_apd.dll
extension=php_bcompiler.dll
extension=php_bitset.dll
;extension=php_blenc.dll ; if enabled, test page is blank. Transparent PHP Script Encryption using Blowfish (http://pecl.php.net/package/BLENC)
extension=php_bz2.dll
extension=php_bz2_filter.dll
extension=php_classkit.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_cvsclient.dll
;extension=php_db.dll - deprecated. Use php_dba.dll instead.
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_dio.dll
extension=php_docblock.dll
;extension=php_domxml.dll ; threw a bunch of "PHP Notice: Constant XML_... already defined ..." errors.
extension=php_event.dll
extension=php_mbstring.dll ; mbstring must be defined before exif.
extension=php_exif.dll
extension=php_fdf.dll
extension=php_fileinfo.dll
extension=php_filepro.dll
extension=php_fribidi.dll
extension=php_gd2.dll ; gif draw - http://www.boutell.com/gd
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_gopher.dll
extension=php_haru.dll
extension=php_htscanner.dll
extension=php_http.dll
extension=php_hyperwave.dll
;extension=php_ibm_db2.dll ; IBM DB2 database
extension=php_id3.dll
;extension=php_ifx.dll ; Informix database.
;extension=php_iisfunc.dll ; Enable IIS and service management via PHP (http://kromann.info/article.php?Id=11062861865960000) - significantly increases CPU load
extension=php_imagick.dll ; ImageMagick (http://pecl.php.net/package/imagick).
extension=php_imap.dll
;extension=php_ingres.dll ; Ingres database - complains about missing iilibapi.dll
extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_lzf.dll
extension=php_mailparse.dll ; requires php_mbstring.dll
;extension=php_maxdb.dll ; requires MySQL maxDB (www.mysql.com/maxdb)
extension=php_mcrypt.dll ; requires the mcrypt library (libmcrypt.dll - http://mcrypt.sourceforge.net/, http://files.edin.dk/php/win32/mcrypt/, ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/old/win32/)
extension=php_mcrypt_filter.dll
;extension=php_mcve.dll
extension=php_memcache.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_msql.dll
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_netools.dll ; requires lcrzo.dll (http://www.icewalkers.com/Linux/Software/516050/lcrzo.html)? Appears to be a very fragile project. PECL extension page: http://pecl.php.net/package/netools
extension=php_ntuser.dll
;extension=php_oci8.dll ; OCI for ORacle databases
extension=php_oggvorbis.dll
extension=php_openssl.dll
extension=php_operator.dll
;extension=php_oracle.dll ; Oracle database
extension=php_parsekit.dll
extension=php_pdf.dll
extension=php_pdo.dll
extension=php_pdo_firebird.dll ; requires php_pdo.dll
;extension=php_pdo_ibm.dll
;extension=php_pdo_informix.dll ; more Informix ; requires php_pdo.dll
extension=php_pdo_mssql.dll ; requires php_pdo.dll
extension=php_pdo_mysql.dll ; requires php_pdo.dll
;extension=php_pdo_oci.dll ; more OCI ; requires php_pdo.dll
;extension=php_pdo_oci8.dll ; yet more OCI ; requires php_pdo.dll
extension=php_pdo_odbc.dll ; requires php_pdo.dll
extension=php_pdo_pgsql.dll ; requires php_pdo.dll
;extension=php_pdo_sqlite.dll ; requires php_pdo.dll
;extension=php_pdo_sqlite_external.dll
extension=php_pgsql.dll
;extension=php_phar.dll
extension=php_phpdoc.dll
extension=php_pop3.dll
;extension=php_printer.dll ; significantly increases CPU load
;extension=php_pspell.dll ; ASpell - http://www.aspell.net/win32
extension=php_radius.dll
;extension=php_rar.dll
extension=php_runkit.dll
;extension=php_sam.dll
extension=php_sdo.dll
extension=php_shmop.dll
extension=php_smtp.dll
;extension=php_snmp.dll ; Throws a bunch of "Cannot find module" errors.
extension=php_soap.dll
extension=php_sockets.dll
extension=php_spl_types.dll
extension=php_sqlite.dll ; requires php_pdo.dll
extension=php_ssh2.dll
extension=php_stats.dll
extension=php_stem.dll
;extension=php_svn.dll ; requires intl3_svn.dll (Subversion Revision control system - http://pecl.php.net/package/svn)
extension=php_swish.dll
;extension=php_sybase_ct.dll ; sybase database
;extension=php_threads.dll ; significantly increases CPU load
;extension=php_tidy.dll ; significantly increases CPU load
extension=php_timezonedb.dll
extension=php_translit.dll
extension=php_uploadprogress.dll
extension=php_win32ps.dll
extension=php_win32scheduler.dll
extension=php_win32service.dll
extension=php_win32std.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
extension=php_zip.dll
extension=php_zlib_filter.dll
------------------ End
( ใน howto พูดถึงเรื่องการ ปรับแต่งค่าสถานที่เก็บ session file หากไม่ต้องการก็ข้ามไปได้เลย )
ปรับแต่งค่าเพิ่ม โดยเอา คอมเม้นท์ บรรทัดที่เขียนว่า
cgi.force_redirect แล้ว set ค่าให้เท่ากับ 0 ( ของเดิมเป็น 1 )
เรียบร้อยแล้วก็ทำการ save เลย
เพิ่มค่าใน registry file
สร้าง text file ขึ้นมาไฟล์หนึ่งจากนั้นก้อปปี้ค่าข้างล่างใส่ แล้วก็ save ซะ ตั้งชื่อเป็นอะไรก็ได้ ( สำหรับผมทำนะ แต่
ใน howto เขาตั้งชื่อเป็นทางการหน่อยคือ inifilepath.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
"IniFilePath"="C:\\PHP"
save แล้วก็ double click เพื่อเป็นการ install จบ
ติดตั้ง ISAPI สำหรับ IIS ทำตาม link นี้เลยครับ
http://www.phplivesupport.com/documentation/viewarticle.php?aid=76&pid=8
เป็นอันเรียบร้อย เหตุที่ผมใช้เป็นแบบ zip ไฟล์เนื่องจากปัญหาน้อยกว่า และ ติดตั้งง่ายกว่า msi package อ้อ ถ้าท่าน
เผลอไปติดตั้งเป็นแบบ msi แต่ใช้งานไม่ได้ เปลี่ยนมาติดตั้งเป็นแบบ zip ไฟล์ก็ไม่หาย ให้เปิด registry หาคีย์ที่เขียน
ว่า php5isapi.dll ว่ามันอ้างอิงค่า ถูกต้องหรือเปล่า เช่นของผมมันเป็น php5is~1.dll ก็เขียนแก้ไขใหม่ซะ
**ปัญหา HTTP 500 Internal Server Error ในตอนการติดตั้งเป็นแบบ ISAPI หลังจากการติดตั้งแล้ว ส่วน
มากเกิดจากการกำหนดค่า ISAPI มีความผิดพลาด ให้ตรวจค่าใน registry ว่ามีการเขียนค่าถูกต้องหรือไม่ โดยค้น
จากคีย์เวิร์ด php5isapi.dll ( registry missing config for ISAPI by MSI )ตามที่บอก
อ้างอิง Howto ( thx :-)~ )
PHP5+IIS6 Install Howto
http://www.peterguy.com/php/install_IIS6.html
PHP5+ISAPI+IIS5 on WindowsXP Howto
http://www.phplivesupport.com/documentation/viewarticle.php?aid=76&pid=8
Another idea
http://www.faqts.com/knowledge_base/view.phtml/aid/44904/fid/1655

No comments:
Post a Comment