เริ่มต้นใช้งาน PHP-FPM ผ่าน Docker
ในยุคปัจจุบันนี้ Docker เป็นเทคโนโลยีที่มีความนิยมอย่างแพร่หลายในการจัดการและการเปิดใช้งานแอปพลิเคชัน ในบทความนี้เราจะสำรวจการใช้งาน PHP-FPM ผ่าน Docker เพื่อเริ่มต้นกับการพัฒนาและรันโปรแกรม PHP ในสภาพแวดล้อมที่เป็นอิสระและทดสอบง่าย.
เนื้อหา
1. ทำความรู้จักกับ Docker
2. ติดตั้ง Docker
3. สร้าง Dockerfile สำหรับ PHP-FPM
4. สร้าง Docker Compose สำหรับการใช้งาน PHP-FPM
5. ทดสอบแอปพลิเคชัน PHP ผ่าน Docker
-
ทำความรู้จักกับ Docker
Docker เป็นแพลตฟอร์มที่ช่วยในการสร้างและรันแอปพลิเคชันในสภาพแวดล้อมเรียบง่ายโดยใช้คอนเทนเนอร์. คอนเทนเนอร์ Docker มีความพร้อมใช้งานทันทีและสามารถถูกย้ายไปยังสภาพแวดล้อมอื่น ๆ ได้อย่างง่ายดาย.
-
ติดตั้ง Docker
ถ้าคุณยังไม่ได้ติดตั้ง Docker ให้ไปที่เว็บไซต์ Docker และดาวน์โหลด Docker Desktop สำหรับระบบปฏิบัติที่คุณใช้งาน (Windows, macOS, หรือ Linux) แล้วติดตั้งในเครื่องของคุณ.
-
สร้าง Dockerfile สำหรับ PHP-FPM
สร้างไฟล์ Dockerfile เพื่อกำหนด image: Docker สำหรับ PHP-FPM:
# ใช้ image: PHP-FPM ที่มาจาก Docker Hub
FROM php:7.4-fpm
# ติดตั้งส่วนเสริมที่จำเป็น
RUN docker-php-ext-install mysqli pdo pdo_mysql
# ระบุไดเรกทอรีที่เราจะใช้ในการเก็บโค้ดของแอปพลิเคชัน
WORKDIR /var/www/html
# คัดลอกโค้ดของแอปพลิเคชันเข้าไปในคอนเทนเนอร์
COPY . .
# กำหนดค่า PHP-FPM
CMD ["php-fpm"]
ใน Dockerfile นี้:
- เราใช้ image PHP-FPM จาก Docker Hub เป็น image หลัก
- เราติดตั้งส่วนเสริมที่จำเป็นเพื่อรองรับการทำงานของแอปพลิเคชัน PHP ของเรา
- กำหนดไดเรกทอรีที่จะใช้ในการเก็บโค้ดของแอปพลิเคชัน
- คัดลอกโค้ดของแอปพลิเคชันเข้าไปในคอนเทนเนอร์ Docker
- กำหนดค่า PHP-FPM เพื่อให้รันแอปพลิเคชัน PHP ของเรา
-
สร้าง Docker Compose สำหรับการใช้งาน PHP-FPM
สร้างไฟล์ docker-compose.yml เพื่อกำหนดการใช้งาน PHP-FPM และฐานข้อมูล MySQL (หากมีความจำเป็น):
version: '3'
services:
php-fpm:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./app:/var/www/html
ports:
- "9000:9000"
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: app_db
ports:
- "3306:3306"
ในไฟล์ docker-compose.yml นี้:
- เราสร้าง service: php-fpm ที่ใช้ Dockerfile เพื่อสร้าง image: Docker สำหรับ PHP-FPM
- เรากำหนดโฟลเดอร์โค้ดของแอปพลิเคชันในเครื่องหลัก (host machine) ที่จะถูกแชร์กับคอนเทนเนอร์ PHP-FPM
- กำหนดพอร์ต 9000 เพื่อให้สามารถเชื่อมต่อกับ PHP-FPM ได้ผ่านเครือข่าย
- เราสร้าง service: mysql ซึ่งใช้ image: Docker ของ MySQL เพื่อเป็นฐานข้อมูลของแอปพลิเคชันของเรา
- เรากำหนดตัวแปรสภาพแวดล้อมสำหรับ MySQL เช่นรหัสผ่าน root และชื่อฐานข้อมูล
-
ทดสอบแอปพลิเคชัน PHP ผ่าน Docker
เมื่อคุณสร้าง Docker Compose สำหรับ PHP-FPM และ MySQL ให้ทำตามนี้: ในโฟลเดอร์ของโค้ดของคุณ (ในตัวอย่างนี้คือ ./app) สร้างไฟล์ PHP อย่างเช่น index.php และเขียนโค้ด PHP ตัวอย่าง:
<?php
echo "Hello, Docker PHP-FPM!";
?>
- เปิดหน้าเทอมินัล (Terminal) และเข้าไปในโฟลเดอร์ที่มีไฟล์ docker-compose.yml
- ใช้คำสั่งต่อไปนี้เพื่อสร้างและรันคอนเทนเนอร์ Docker สำหรับ PHP-FPM และ MySQL:
docker-compose up -d
คำสั่งนี้จะสร้างและเริ่มต้นคอนเทนเนอร์ในพื้นหลัง
- เมื่อทุกอย่างพร้อมแล้ว คุณสามารถเข้าถึงแอปพลิเคชัน PHP ที่กำหนดไว้ใน index.php ได้โดยเข้า URL http://localhost:9000/index.php ในเบราว์เซอร์ของคุณ
- หากคุณได้สร้างฐานข้อมูล MySQL คุณสามารถเชื่อมต่อกับ MySQL ผ่านพอร์ต 3306 และข้อมูลการเข้าสู่ระบบที่คุณกำหนดใน Docker Compose
สรุป
ในบทความนี้เราได้ทำความรู้จักกับการใช้งาน PHP-FPM ผ่าน Docker และ Docker Compose เราได้สร้าง image: Docker สำหรับ PHP-FPM และ MySQL ซึ่งทำให้สามารถพัฒนาและทดสอบแอปพลิเคชัน PHP ในสภาพแวดล้อมที่เป็นอิสระและมีความสะดวกสบาย Docker เป็นเครื่องมือที่มีประโยชน์ในการจัดการและปรับปรุงการพัฒนาแอปพลิเคชันของคุณในรูปแบบคอนเทนเนอร์อย่างมีประสิทธิภาพ
Write a comment