การ Deploy API ขึ้น Server จริง
หลังจากที่เราพัฒนาและทดสอบ API ของเราอย่างละเอียดถี่ถ้วนด้วย Postman ในบทที่แล้ว (บทที่ 31) ถึงเวลาแล้วที่เราจะนำ API ของเราขึ้นสู่โลกภายนอก หรือที่เรียกกันว่า "การ Deploy" นั่นเอง ในบทนี้ เราจะมาเรียนรู้วิธีการนำ API ที่เราสร้างขึ้นไปติดตั้งบน Server จริง เพื่อให้ผู้ใช้งานทั่วไปสามารถเข้าถึงและใช้งาน API ของเราได้
ทำไมต้อง Deploy?
API ที่เราสร้างขึ้นบนเครื่องคอมพิวเตอร์ส่วนตัวของเรานั้น เป็นเพียง API ที่ทำงานอยู่ในสภาพแวดล้อมจำลอง (Local environment) ซึ่งมีข้อจำกัดในการเข้าถึงจากภายนอก ดังนั้น หากเราต้องการให้ API ของเราสามารถถูกเรียกใช้งานจากแอปพลิเคชันหรือเว็บไซต์อื่นๆ ที่อยู่บนอินเทอร์เน็ต เราจำเป็นต้องนำ API ของเราไปติดตั้งบน Server จริง ซึ่งเป็นเครื่องคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ตตลอดเวลา และสามารถให้บริการ API ของเราได้ตลอด 24 ชั่วโมง
ขั้นตอนการ Deploy API ขึ้น Server จริง
การ Deploy API ขึ้น Server จริงนั้น มีขั้นตอนหลักๆ อยู่ 3 ขั้นตอน ดังนี้:
- การเตรียม Server: จัดเตรียม Server ให้พร้อมสำหรับการติดตั้ง API ของเรา
- การ Upload Code: อัปโหลด Source Code ของ API ของเราขึ้นไปยัง Server
- การตั้งค่า Web Server: ตั้งค่า Web Server ให้รองรับการทำงานของ API ของเรา
1. การเตรียม Server
ก่อนที่เราจะทำการ Upload Code API ของเราขึ้นไปยัง Server เราจำเป็นต้องเตรียม Server ให้พร้อมเสียก่อน โดยการเตรียม Server นั้นขึ้นอยู่กับประเภทของ Server ที่เราเลือกใช้ ซึ่งโดยทั่วไปแล้ว เราสามารถแบ่ง Server ออกเป็น 2 ประเภทหลักๆ ได้แก่:
- Shared Hosting: เป็นบริการ Hosting ที่เราแชร์ทรัพยากรของ Server ร่วมกับผู้ใช้งานรายอื่นๆ ซึ่งเป็นตัวเลือกที่ประหยัดและเหมาะสำหรับ API ขนาดเล็ก
- Virtual Private Server (VPS): เป็นบริการ Hosting ที่เรามีทรัพยากรของ Server เป็นของเราเอง แต่ยังคงแชร์ Hardware กับผู้ใช้งานรายอื่นๆ ซึ่งเป็นตัวเลือกที่ยืดหยุ่นและเหมาะสำหรับ API ขนาดกลาง
- Dedicated Server: เป็นบริการ Hosting ที่เรามี Server เป็นของเราเองทั้งหมด ซึ่งเป็นตัวเลือกที่มีประสิทธิภาพสูงและเหมาะสำหรับ API ขนาดใหญ่
ในบทความนี้ เราจะสมมติว่าเราใช้บริการ Shared Hosting เนื่องจากเป็นตัวเลือกที่ง่ายและสะดวกสำหรับผู้เริ่มต้น โดยทั่วไปแล้ว ผู้ให้บริการ Shared Hosting จะมี Control Panel ให้เราใช้งาน (เช่น cPanel, Plesk) ซึ่งเราสามารถใช้ Control Panel เหล่านี้ในการจัดการไฟล์, ฐานข้อมูล, และการตั้งค่า Web Server ได้
สิ่งที่ต้องตรวจสอบก่อนเริ่ม Deploy:
- PHP Version: ตรวจสอบให้แน่ใจว่า PHP Version บน Server ตรงกับหรือสูงกว่า PHP Version ที่ใช้พัฒนา API ของเรา
- MySQL/MariaDB: หาก API ของเรามีการเชื่อมต่อกับฐานข้อมูล ตรวจสอบให้แน่ใจว่ามี MySQL/MariaDB Server พร้อมใช้งาน และเรามีข้อมูลการเชื่อมต่อ (Hostname, Username, Password, Database Name)
- Extension ที่จำเป็น: ตรวจสอบว่า Extension PHP ที่ API ของเราต้องการ (เช่น PDO, JSON, cURL) ได้ถูกติดตั้งและเปิดใช้งานบน Server แล้ว
กรณีใช้งานจริง:
สมมติว่าเราใช้ cPanel ในการจัดการ Shared Hosting ของเรา เราสามารถตรวจสอบ PHP Version ได้โดยการ Login เข้าสู่ cPanel และมองหาหัวข้อ "PHP Version Manager" หรือ "Select PHP Version" ซึ่งจะแสดง PHP Version ที่ใช้งานอยู่
ข้อผิดพลาดที่พบบ่อย:
PHP Version ไม่ตรงกับที่ใช้พัฒนา: หาก PHP Version บน Server ต่ำกว่าที่ใช้พัฒนา API ของเรา อาจทำให้ API ไม่สามารถทำงานได้ หรือทำงานได้ไม่ถูกต้อง
2. การ Upload Code
เมื่อเราเตรียม Server เรียบร้อยแล้ว ขั้นตอนต่อไปคือการ Upload Source Code ของ API ของเราขึ้นไปยัง Server โดยเราสามารถทำได้หลายวิธี เช่น:
- FTP (File Transfer Protocol): เป็นวิธีที่คลาสสิกและใช้กันอย่างแพร่หลาย โดยเราจะต้องใช้โปรแกรม FTP Client (เช่น FileZilla, Cyberduck) ในการเชื่อมต่อกับ Server และ Upload ไฟล์
- File Manager ใน Control Panel: ผู้ให้บริการ Shared Hosting ส่วนใหญ่มักจะมี File Manager ให้เราใช้งานใน Control Panel ซึ่งเราสามารถใช้ File Manager ในการ Upload ไฟล์ผ่าน Web Browser ได้
- Git: หากเราใช้ Git ในการจัดการ Source Code ของ API ของเรา เราสามารถใช้ Git ในการ Deploy Code ขึ้นไปยัง Server ได้ (ต้องมีการตั้งค่า Git Repository บน Server ก่อน)
โดยทั่วไปแล้ว เราจะ Upload Source Code ของ API ของเราไปยัง Directory ที่ Web Server ชี้ไป (เช่น `public_html`, `htdocs`, `www`) ซึ่ง Directory นี้จะเป็น Root Directory ของเว็บไซต์ของเรา
ขั้นตอนการ Upload Code ด้วย FTP (FileZilla):
- ดาวน์โหลดและติดตั้ง FileZilla
- เปิด FileZilla และกรอกข้อมูลการเชื่อมต่อ FTP (Hostname, Username, Password, Port) ที่ได้รับจากผู้ให้บริการ Hosting
- เชื่อมต่อกับ Server
- เลือก Directory ที่ต้องการ Upload Code (เช่น `public_html`)
- ลากและวาง Source Code ของ API จากเครื่องคอมพิวเตอร์ของเราไปยัง Directory ที่เลือก
กรณีใช้งานจริง:
เรามี API ที่เขียนด้วย PHP และไฟล์หลักคือ `index.php` เราจะ Upload ไฟล์ `index.php` และไฟล์อื่นๆ ที่เกี่ยวข้อง (เช่น ไฟล์ Library, ไฟล์ Config) ไปยัง Directory `public_html` บน Server
ข้อผิดพลาดที่พบบ่อย:
- การ Upload ไฟล์ไม่ครบ: ตรวจสอบให้แน่ใจว่าได้ Upload ไฟล์ทั้งหมดที่ API ของเราต้องการ
- การ Upload ไฟล์ผิด Directory: ตรวจสอบให้แน่ใจว่าได้ Upload ไฟล์ไปยัง Directory ที่ Web Server ชี้ไป
- Permission ของไฟล์ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าไฟล์และ Directory มี Permission ที่เหมาะสม (โดยทั่วไปคือ 644 สำหรับไฟล์ และ 755 สำหรับ Directory)
3. การตั้งค่า Web Server
หลังจากที่เรา Upload Code ขึ้นไปยัง Server แล้ว ขั้นตอนสุดท้ายคือการตั้งค่า Web Server ให้รองรับการทำงานของ API ของเรา ซึ่งการตั้งค่า Web Server นั้นขึ้นอยู่กับประเภทของ Web Server ที่เราใช้ โดย Web Server ที่นิยมใช้กันทั่วไป ได้แก่:
- Apache: เป็น Web Server ที่ได้รับความนิยมมากที่สุด
- Nginx: เป็น Web Server ที่มีประสิทธิภาพสูงและใช้ทรัพยากรน้อย
โดยทั่วไปแล้ว ผู้ให้บริการ Shared Hosting จะใช้ Apache เป็น Web Server และเราสามารถตั้งค่า Apache ได้ผ่านไฟล์ `.htaccess` ซึ่งเป็นไฟล์ Configuration ที่อยู่ใน Root Directory ของเว็บไซต์ของเรา
ตัวอย่างการตั้งค่า `.htaccess` สำหรับ API:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
Code นี้จะทำการ Rewrite URL ทั้งหมดไปยังไฟล์ `index.php` ซึ่งจะทำให้เราสามารถจัดการ Routing ของ API ได้อย่างง่ายดาย
อธิบาย Code:
RewriteEngine On: เปิดใช้งาน Rewrite EngineRewriteBase /: กำหนด Base URL เป็น Root DirectoryRewriteCond %{REQUEST_FILENAME} !-f: ตรวจสอบว่า Request File Name ไม่ใช่ไฟล์ที่มีอยู่จริงRewriteCond %{REQUEST_FILENAME} !-d: ตรวจสอบว่า Request File Name ไม่ใช่ Directory ที่มีอยู่จริงRewriteRule ^ index.php [QSA,L]: Rewrite URL ทั้งหมดไปยังไฟล์ `index.php` โดย[QSA]หมายถึง Query String Append และ[L]หมายถึง Last Rule
การตั้งค่า Database Connection:
หาก API ของเรามีการเชื่อมต่อกับฐานข้อมูล เราจะต้องแก้ไขไฟล์ Configuration ของ API ของเราเพื่อกำหนดข้อมูลการเชื่อมต่อกับฐานข้อมูล (Hostname, Username, Password, Database Name) ให้ถูกต้อง
กรณีใช้งานจริง:
เรามี API ที่ใช้ MySQL Database เราจะต้องแก้ไขไฟล์ `config.php` หรือไฟล์ที่เก็บข้อมูลการเชื่อมต่อฐานข้อมูลอื่นๆ เพื่อให้ API สามารถเชื่อมต่อกับฐานข้อมูลบน Server ได้อย่างถูกต้อง
ข้อผิดพลาดที่พบบ่อย:
- ไฟล์ `.htaccess` ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่า Syntax ของไฟล์ `.htaccess` ถูกต้อง
- Database Connection ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าข้อมูลการเชื่อมต่อกับฐานข้อมูลถูกต้อง
- Permission ของไฟล์ `.htaccess` ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าไฟล์ `.htaccess` มี Permission ที่เหมาะสม (โดยทั่วไปคือ 644)
สรุป
ในบทนี้ เราได้เรียนรู้วิธีการ Deploy API ขึ้น Server จริง ซึ่งประกอบด้วย 3 ขั้นตอนหลักๆ ได้แก่ การเตรียม Server, การ Upload Code, และการตั้งค่า Web Server หวังว่าบทความนี้จะเป็นประโยชน์สำหรับผู้เริ่มต้นที่ต้องการนำ API ของตนเองขึ้นสู่โลกภายนอก ในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับการ Monitor API เพื่อให้เราสามารถตรวจสอบและแก้ไขปัญหาที่อาจเกิดขึ้นกับ API ของเราได้อย่างทันท่วงที