ภาษา 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) ต่อท้าย ชึ่งมันดูไม่ค่อยเทห์ และน่ารำคาญ (จริงๆ มันแล้วแต่คนชอบนะครับ แหะๆ)
1 2 3 4 5 6 7 |
ตัวอย่าง URL แบบติดตั้งแยก (กรณีใช้ IIS กับ Web server ค่ายอืน) http://localhost/test.aspx (รัน asp.net) http://localhost:8080/test.php (รัน php กับ web server ค่ายอืน xampp, appserv .. etc) ตัวอย่าง URL เราสามารถรัน 2 ภาษานี้ใน IIS ตัวเดียว (กรณี ใช้ IIS รันทั้ง PHP และ asp.net) http://localhost/test.php (รัน php) http://localhost/test.aspx (รัน asp.net) |
(สำหรับท่านที่ไมไ่ด้พัฒนาฝั่ง .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)
1 2 |
IIS If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP. |
ในเว็บของ windows.php.net เค้าจะแนะนำให้เราใช้แบบ Non-Thread Safe
1 |
VC14 x64 Non Thread Safe (2015-Dec-03 20:07:24) 22.79 MB |
หลังจาก 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.. ที่มุมขวา
1 2 3 4 |
Request path : *.php Module : FastCgiModule Executable (optional): C:\PHP\php-cgi.exe Nam : PHP |
ทำการกรอกข้อมูลดังภาพข้างบน ให้ครบ
จากนั้น เพื่อให้ 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
1 |
iisreset |
จากนั้นมาสร้างไฟล์ PHP ในการทดสอบกัน ว่า IIS สามารถใช้งานได้จริงหรือป่าว ในตัวอย่างนี้ผมจะลองสร้างไฟล์ phpinfo ขึ้นมา
แล้ววางไว้ใน C:\inetpub\wwwroot\PHP\index.php
1 |
<?php phpinfo(); ?> |
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” แล้วทำการลบเครืองหมาย “;” ข้างหน้าออก
1 2 3 4 5 6 7 |
extension=php_bz2.dll extension=php_curl.dll extension=php_fileinfo.dll extension=php_mbstring.dll extension=php_exif.dll extension=php_mysqli.dll extension=php_openssl.dll |
บทความนี้จะเปิดใช้งานแค่ extension ข้างบน ในการทดสอบ (ถ้าท่านได ใช้นอกเหนือจากตรงนี้ ก็สามารถเปิดใช้งานเองเพิ่มเติมได้)
อ้อ อย่าลืมปรับ upload_max_filesiz และ post_max_size ด้วยนะครับ เพราะมีผลต่อการ Upload ไฟล์ต่างๆๆ
1 2 |
upload_max_filesize = 200M; post_max_size = 200M; |
มาถึงขั้นตอนนี้แล้ว ถ้าลองรัน 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 ชึ่งมันฟรี)
1 2 |
https://downloads.mariadb.org/ http://dev.mysql.com/downloads/mysql/ |
สามารถเลือกโหลดมาติดตั้งได้ตามใจชอบ (ในที่นี้ผมได้ติดตั้ง 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
Comments are closed