วิธีติดตั้ง PHP เพื่อใช้งานกับ IIS ผ่าน (FastCGI) บน Windows 10
วิธีติดตั้ง PHP เพื่อใช้งานกับ IIS ผ่าน (FastCGI) บน Windows 10

ภาษา PHP เป็นภาษาที่นิยมกันอย่างแพร่หลายในปัจจุบัน เนืองจากเป็น Open source (ฟรี), เขียนง่าย แล้วยังสามารถรันได้แทบทุกระบบปฏิบัติการ (Cross platform)   จะเห็นได้จากทุกวันนนี้ CMS หลายๆเจ้า ก็ล้วนแล้วแต่พัฒนามาจากภาษา php กันทั้งนั้น  วันนี้เลยจะมานำเสนอขั้นตอนการติดตั้ง PHP เพื่อสามารถให้ใช้งานบน Web server บนฝั่ง Windows อย่าง IIS ควบคู่ไปกับ ยังสามารถใช้งานรวมกับภาษา ASP.NET ได้อีกด้วย ซึ่งน่าจะเป็นประโยชน์ไม่มากก็น้อยนะครับ

ปัจจุบัน มี Web server หลายๆ ตัว บนฝั่ง Windows ที่สามารถรัน PHP ได้ ที่เห็นเป็นที่นิยมในบ้านเรา ตัวอย่าง เช่น XAMPP, Easy PHP, AppServ, Microsoft Web Platform Installer เป็นต้น แต่สำหรับท่านที่เป็นเป็นนักพัฒนาฝั่ง Windows หรือ  .NET อยู่แล้ว คงไม่มีใครไม่รู้จัก IIS ชึ่งก็เป็น Web server ที่สามารถรัน ASP.NET นั้นเอง (ติดมาอยู่แล้วกับ Windows)

มีคนเคยถามว่า แล้วทำไม ไม่ใช้  XAMPP, หรือ AppServ ละ ?
ตอบ : ในเมือเราเป็น DEV ฝั่ง .NET (ใช้งาน ASP.NET) อยู่แล้ว  มี IIS ในเครืองอยู่จะไปลงตัวอื่นเพิ่มให้หนักเครืองทำไม?  แถม IIS ก็ยังติดตั้งก็ง่าย และมีอยู่แล้วใน Windows สมมุติ ถ้าติดตั้งตัวตัวอื่นแล้ว จะทำให้ port  : 80 (HTTP) ไปชนกับ IIS  ทำให้เวลาใช้งานอาจจะต้องติดตั้งให้ใช้งานคนละ port ชึ่งต้องมานั่งพิมพ์  เช่น http://localhost:8080   (เพิ่ม port : 8080) ต่อท้าย  ชึ่งมันดูไม่ค่อยเทห์   และน่ารำคาญ (จริงๆ มันแล้วแต่คนชอบนะครับ แหะๆ)

(สำหรับท่านที่ไมไ่ด้พัฒนาฝั่ง .NET ก็อาาจะมองข้าม IIS  ไปก็ได้ครับ สามารถเลือกตัวอืนได้ครับ ไม่ว่ากัน)

คราวนี้เรามาเริ่มกันติดตั้งไปพร้อมกันครับ ..
ก่อนอื่นเลย จะต้องเปิดใช้งาน IIS บนเครืองสะก่อนนะครับ   ปรกติบน Window 7,8,10 นั้น สามารถเปิดใช้งานได้เลย โดยไม่ต้องใช้แผ่น Setup เหมือนสมัย Windows XP สามารถเข้าไปที่ Control Panel\All Control Panel Items   แล้วเลือก Programs and Features จากนั้นจะเห็นเมนูฝั่งซ้าย  Turn Windows features on or off แล้วคลิกเข้าไปได้เลย

ทำการเลือก  features options ต่างๆ สำหรับที่จะทำการติดตั้ง อยู่ในหัวข้อ Internet Information service
ในที่นี้ ผมจะเลือก ติ๊กทุกอันเลยนะครับ  (จะใช้หรือไม่ใช้ ค่อยว่ากันอีกที  ^ ^” เกินยังดีกว่าขาด)  🙂

ถ้าขึ้นหัวข้อข้างบน อาจจะต้องต่อ Internet เพื่อทำการ Online Update อีกที

ถ้าไม่ติดอะไร  ก็น่าจะผ่านไปด้วยดี … ขึ้นตอนนี้อาจจะใช้เวลานิดหน่อย  (2-5 นาที)

เสร็จเรียบร้อยละ จากนั้นกด Close ไปได้เลย

เรียบร้อยละครับ สำหรับการติดตั้ง IIS ชึ่งมันง่ายมากๆ

จากนั้นเพื่อให้แน่ใจ ทำการทดสอบว่า IIS มันสามารถทำงานได้หรือป่าว โดยการเปิด  Browser ค่ายไหนก็ได้
แล้วลองรัน URL  http://localhost หรือ http://127.0.0.1
ถ้าหน้าจอเป็นเหมือนภาพข้างบนก็แสดงว่า พร้อมใช้งานละครับ

ส่วนการที่จะเปิด IIS ขึ้นมาใช้งานนั้น สามารถเข้าผ่าน Start Menu ของ Windows ได้เลย โดยค้นหา inetmgr
หรือ Ctrl+R  แล้วพิมพ์ inetmgr หรือถ้าหากใช้บ่อยๆ ก็สร้าง Shortcuts หรือ Pin to taskbar ไว้เลยก็ได้ครับ


ณ. ตอนนี้ IIS สามารถรัน Project ได้เฉพาะ ASP.NET  แต่จะยังไม่สามารถรัน Extensions ที่เป็น PHP ได้
ดังนั้นเราจะต้องไป Download PHP extensions มาเพื่อทำการ Config ให้ใช้งานบน IIS สะก่อน

Extensions ของ PHP สามารถเข้าไป Download ได้ที่  http://windows.php.net/download/
ปัจจุบันมีถึง PHP version 7 แล้ว (ซึ่งเป็น version ที่ใหม่ล่าสุดแล้ว ณ. ตอนนนี้)
บทความนี้่จะใช้ PHP v7 x64  (เครืองที่ทำการทดสอบใช้ Windows 10 x64)

ในเว็บของ windows.php.net เค้าจะแนะนำให้เราใช้แบบ Non-Thread Safe

หลังจาก Download ลงมาไว้ที่เครืองละ  จากนั้นทำการแตกไฟล์ไปวางที่ใน Drive ไหนก็ได้  ในที่นี้ผมจะยกตัวอย่างวางไว้ที่ C:\PHP

ต่อมา ให้ทำการ Register ให้ PHP extension เข้าไปใน System Environment   เพือให้เราสามารถใช้ Command Line PHP บน path ไหนก็ได้
ถ้าไม่ Add PHP path เข้าไปอยู่ใน Environment ของ Windows เราสามารถเข้าไปรันใน path   C:\PHP\php.exe -v ได้เช่นกัน

เมือทำการ Added PHP path เข้าไปใน Windows Environment แล้วจากนั้น
ลองพิมพ์  C:\path เพื่อดูว่า ตอนนี้  PHP มันเป็นส่วนหนึ่งของ Environment ของ Windows หรือยัง

คราวนี้มาถึงขึ้นตอนที่ต้องทำการ Register extensions ของ PHP บน IIS ละครับ  ขึ้นตอนก็ไม่ยุงยากอะไร
ให้ทำการเปิดที่ IIS ขึ้นมา (หรือ Ctrl+R พิมพ์ inetmgr)   เปิดเข้ามาในหน้า IIS เลือกที่ Default Web Site
จากนั้นมองหา Handler Mappings แล้วกด Add Module Mapping.. ที่มุมขวา

ทำการกรอกข้อมูลดังภาพข้างบน ให้ครบ


จากนั้น เพื่อให้ Web server มันรู้จัก Startup page (page แรก) นั้นเอง  จะต้องมาเพิ่มตรงนี้ด้วย อยู่ในหัวข้อ Default Document
ถ้าไม่ทำตรงนี้  ยกตัวอย่างเมือเราวาง  URL บน Browser  “http://lcoalhost/PHP/ มันจะไม่รู้จักหน้าแรก (จะ Error 404 File not found)

ก็เป็นอันเสร็จเรียบร้อย สำหรับการ config IIS ให้รู้จัก PHP Extension   เพื่อให้ชัวส์ restart IIS จักรอบก็ดีเหมือนกันนะครับ
เปิด CMD (Run as Administrator) แล้วพิมพ์คำสั่ง iisreset

จากนั้นมาสร้างไฟล์ PHP ในการทดสอบกัน  ว่า IIS สามารถใช้งานได้จริงหรือป่าว  ในตัวอย่างนี้ผมจะลองสร้างไฟล์ phpinfo ขึ้นมา
แล้ววางไว้ใน   C:\inetpub\wwwroot\PHP\index.php

Noted : Default web root folder ของ IIS คือ C:\inetpub\wwwroot  (ดังนั้น project เว็บต้องเอามาวางทีในนี้ ถึงจะทำงานได้)
จริงๆ มันสามารถ Config ให้ IIS มันย้าย default path ไปทีไหนก็ได้

คราวนี้ลองเปิด ฺBrowser แล้วรัน  URL  http://localhost/PHP/index.php เพื่อทดสอบดูครับ
ถ้ามันแสดงหน้า PhpInfo ขึ้นมาได้ ก็เป็นอันว่ามันสามารถทำใช้งาน PHP ได้ล่ะ Yeahh.. !!

ตอนนี้เราได้ Web server ที่สามารถใช้งานได้ทั่ง ASP.NET, MVC และ PHP  แต่ยังขาดการติดต่อกับฐานข้อมูล
คงมีน้อยคนที่ใช้งาน Web server เพื่อรันแค่ Content html   ดังนั้นเราควรจะต้องเปิด PHP Webserver ให้รองรับการ
เชื่อมต่อฐานข้อมูล (Database) ด้วย  ในที่นี้จะยกตัวอย่าง Database ที่เป็น Opensource ยอดฮิตอย่าง MySQL, MariaDB

ขึ้นตอนการ Config ให้ PHP สามารถ Connect database MySQL ได้นั้น
เราจะต้องเข้าไป Uncomment Extension ต่างๆ ในไฟล์ php.ini  (ไฟล์ Config ของ PHP)
ซึ่งในที่นี้ ใน C:\PHP\   จะเห็นไฟล์  php.ini-development ให้ทำการ Rename เป็น php.ini
จากนั้นเปิดด้วย Text Editor ตัวไหนก็ได้ แล้วค้นหา “extension=php_mysql.dll” แล้วทำการลบเครืองหมาย “;” ข้างหน้าออก

บทความนี้จะเปิดใช้งานแค่ extension ข้างบน ในการทดสอบ  (ถ้าท่านได ใช้นอกเหนือจากตรงนี้ ก็สามารถเปิดใช้งานเองเพิ่มเติมได้)
อ้อ  อย่าลืมปรับ upload_max_filesiz และ post_max_size ด้วยนะครับ  เพราะมีผลต่อการ Upload ไฟล์ต่างๆๆ

มาถึงขั้นตอนนี้แล้ว ถ้าลองรัน php -v แล้ว error เกียวกับ load .dll ไม่เจอ  (มันยังหา path ext เป็นเป็น Folder ที่เก็บ DLL/LIB)
ดังนั้นเราจะต้องทำการแก้ไข path ของ extension_dir ด้วย โดยให้เราทำการค้นหา “extension_dir” ใน php.ini อีกที
แล้วทำการลบ “;” ข้างหน้าบรรทัด  extension_dir = “ext”   แล้วลองรันคำสั่ง php -v อีกที
ถ้าไม่ error ก็แสดงว่ามันสามารถ Load DLL ได้แล้ว

เพื่อให้ชัวส์ ให้ทำการ Refesh   http://localhost/PHP/index.php อีกที  แล้วค้นหน้า “mysql” ในหน้า phpinfo
จากรูปข้างบนแสดงให้เห็นว่าตอนนี้ PHP รู้จักกับ Library ในการเชื่อมต่อ MySQL แล้ว

จากนั้นทำการ Download  Data Base มาติดตั้ง   ฐานข้อมูลที่นิยมนำมาใช้งานกับ  PHP ก็มีหลายตัว
ยกตัวอย่าง MySQL (ปัจจุบัน เป็นของ Oracle ละ), MariaDB .. etc    (ส่วนตัวชอบ MariaDB ชึ่งมันฟรี)

สามารถเลือกโหลดมาติดตั้งได้ตามใจชอบ     (ในที่นี้ผมได้ติดตั้ง MariaDB ไว้ละ)
MariaDB vs MySQL มันใช้ Library เดียวกัน  สามารถใชังาน syntax : mysql กับ mariaDB ได้


ถ้าติดตั้ง DataBase เสร็จแล้ว ถ้าอยากจะเข้าไปจัดการฐานข้อมูล ก็อาจจะต้องใช้ Tools เข้ามาช่วย
จริงๆ มีทั้ง Web Interface และ Windows GUI ในบทความจะแนะนำ phpMyAdmin ละกัน
ซึ่งมันฟรี สามารถโหลดได้ที่ https://www.phpmyadmin.net/downloads/  ปัจจุบัน ล่าสุด คือ v4.5.2

พอโหลดมาเสร็จก็แตกไฟล์นำไปวางใน web root ของ IIS ในที่นี้คือ C:\inetpub\wwwroot\phpMyAdmin
จากนั้นทำการทดสอบ เปิด ฺBrowser แล้วรัน URL : http://localhost/phpMyAdmin อีกที
แล้วลอง login โดยใช้ user/pass ที่ได้มาในตอนติดตั้ง MySQL or MariaDB ถ้าไม่จำไม่ได้ก็ reset password ใหม่
ถ้าไม่ติดอะไร ก็จะสามารถเชื่อมต่อฐานข้อมูลได้ละ  ที่เหลือก็เป็นการเริ่มเขียนโปรแกรม สร้าง Project ของตัวเองขึ้นมาได้ละ

บทความนี้น่าจะเป็นประโยชน์สำหรับท่านที่กำลังสนใจพัฒนา Web application ด้วยภาษา PHP  บนฝั่ง Windows ผ่าน Web Server : IIS และสามารถใช้งานควบคู่กับ ASP.NET

หากมีข้อผิดพลาดประการใด ขออภัยมา ณ ที่นี้ด้วยนะครับ
ขอบคุณครับ
Admin@rockdevper

Facebook Comments
Share Button

Watchara Pongsri

Senior Software Developer, Network Engineer CEH, CHFI, ECSA, MCSA My hobby is - Blogger - Programming & Security Researcher

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

Related Post

วิธี Upgrade PHP บน MacOS Sierra ไปเป็น PHP versio...
views 1,288
บทความนี้จะมาแนะนำวิธีการ ติดตั้ง  PHP บน MacOS Sierra 10.12.1 ให้เป็น vesion ล่าสุด (ซึ่งตอนนี้ version ล่าสุดก็คือ PHP 7.1.X)  แต่หลังจากที่หลายๆ ท่...
มารู้จักวิธีการ Sync settings profile และ extensio...
views 2,063
หลายคนคงรู้จัก IDE ที่ชื่อ Visual studio code ของ Microsoft กันอยู่แล้ว  ชึ่งแน่นอนว่ามันเป็นที่ชื่นชอบคง developer หลายๆ คน รวมถึงผมด้วย  นอกจากมันจะ...
วิธีทำ Auto Mount Partition บน Linux หรือ Raspberr...
views 1,684
บทความนี้จะมาพูดถึงวิธีทำ auto mount สำหรับ Hard disk หรือ USB Drive บน Raspberry Pi หรือใช้กะ Linux ก็ได้เหมือนกัน โดยปรกติแล้วบน Raspberry เวลาเสีย...
วิธี Forward Port ร่วมกับ dynamic dns (No-ip) เพื่...
views 6,229
บทความนี้จะมาแนะนำวิธีการ Forward port เพื่อให้สามารถเข้าถึง Network ข้างในบ้าน ร่วมกับ dynamic dns อย่าง No-ip กัน โดยทั่วไปแล้ว ถ้ามีหากมี request ...
วิธีปรับแต่ง Terminal/Vim บน MacOS Sierra เพื่อให้...
views 1,245
หลังจากที่มาใช้ MacOS Sierra เหมือนผมจะมีปัญหากับปุ่ม Home/End สะเหลือเกิน  เนื่องจากบน Macbook มันจะไม่มีปุ่มดังกล่าวมาให้   ถ้าบน application อื่น เ...
มารู้จัก Sublist3r – Enumeration Tool เครื่อ...
views 1,183
Sublist3r เป็นเครืองมือในการค้นหารายละเอียดของ subdomains ที่เกี่ยวข้อง ภายใต้ เว็บไซต์เป้าหมาย  โดยการเก็บรายละเอียดนั้นจะอาศัย search engines อย่าง ...
วิธีเปิดใช้งาน Nginx ให้รองรับ HTTP/2 บน CentOS 7...
views 2,951
HTTP/2 หรือ (เดิมเรียกว่า HTTP/2.0) เป็นมาตรฐานใหม่ของ web protocol ซึ่งจะมาแทนที่ HTTP/1.1 ซึ่งออกมาตั้งแต่ 1997 (RFC 2068) และใช้อยู่จนถึงปัจจุบัน  ...
วิธีเปิดใช้งาน PHP 7 บน Vesta CP เพื่อใช้งานร่วมก...
views 4,114
ทุกวันนี้จะเห็นว่ามีคนหันมาใช้ VPS (Virtual Private Server) กันเยอะขึ้น  และคงจะรู้จักตัวจัดการ Hosting อย่าง Vesta CP กันมาบ้างแล้ว  ซึ่งเจ้า Vesta C...
วิธีเปิดใช้งาน mod_deflate (Compress ) บน Apache เ...
views 2,031
mod_deflate เป็น Module ของ web server ที่ใช้ในการบีบอัดขข้อมูล (Compress ) ให้มีขนาดเล็กลง ก่อนที่จะส่งไปให้ Client หลังจากฝั่ง Client (Browser) ได้ร...
วิธีปิดการให้บริการ SSLv3 บน Apache เพื่อป้องกันกา...
views 1,868
ที่ผ่านมาเราจะเคยได้ยินข่าว เกียวกับช่องโหว่ของ SSLv3 ซึ่งเป็น Protocol ที่ออกมาตั้งแต่ปี 1996 (เก่ามากๆ)  และเป็นช่องโหว่ที่ถือว่าร้ายแรงเหมือนกัน มี...
วิธีติดตั้ง Let’s encrypt SSL (Free SSL) บน CentOS...
views 5,081
SSL (Secure Sockets Layer) เป็นเครื่องหมายรับรองความปลอดภัยทางอิเล็กทรอนิกส์ ที่จะบอกว่าเว็บนั้นมีความปลอดภัยและน่าเชื่อถือ จะเห็นได้ว่าทุกวันนี้ หลาย...
มาเริ่มต้นเรียนรู้วิธีใช้งาน Raspberry Pi แบบ Step...
views 17,352
Raspberry Pi เป็น Single Bord หรือจะว่ามันเป็น Embedded pc ก็ได้  ในตอนนี้ ถือว่ามันเป็นบอร์ดที่ยอดฮิต ณ. ปัจจุบัน เนื่องจากมีขนาดเล็ก (เล็กเท่ากับ AT...
วิธีการ Debug : MySQL Query Profiling บน Linux...
views 2,083
วันนี้จะมาแนะนำวิธีการ Debug Query บน MySQL  หรือเรียกอีกอย่าง คือ Profiler นั่นเอง  ซึ่งการทำ Profiler นั้น มันมีประโยชน์อย่างมากเลยในการวิเคราะห็ Pr...
แก้ปัญหาเวลาเปิด Visual Studio แล้ว Error “A...
views 2,931
บทความนี้จะแนะนำวิธีแก้ปัญหาเวลาเปิด Project visual studio แล้ว Error ข้อความข้างบน ซึ่ง Error เกิดจากเครืองเรายังไม่ได้ทำการ register .NET Framew...
ถึงเวลาที่จะต้อง Upgrade PHP 5.X มาเป็น PHP 7 บน C...
views 3,516
บทความนี้จะขอกล่าวถึงขั้นตอนในการ upgrade PHP version เก่า ให้เป็น PHP v7 ซึ่งเป็น version ใหม่ ของปี 2015 ซึ่งเป็นของใหม่ อยู่ ณ. ตอนนี้ และตอนนี้ Se...
เปลี่ยนจาก Shared Hosting มาเป็น VPS – Digit...
views 3,201
ช่วงนี้มีเวลาว่างเหลือนิดหน่อย เลยจะกลับมาเขียนบทความอีกครั้ง หลังจากช่วงหลังๆที่ผ่านมา งานประจำก็ยุ่งๆ เหลือเกิน + ความขี้เกีขจของผมเอง ^ ^" เลยไม่ค่...