เริ่มต้นใช้งาน PHP-FPM ผ่าน Docker

เริ่มต้นใช้งาน PHP-FPM ผ่าน Docker
เริ่มต้นใช้งาน PHP-FPM ผ่าน Docker

ในยุคปัจจุบันนี้ Docker เป็นเทคโนโลยีที่มีความนิยมอย่างแพร่หลายในการจัดการและการเปิดใช้งานแอปพลิเคชัน ในบทความนี้เราจะสำรวจการใช้งาน PHP-FPM ผ่าน Docker เพื่อเริ่มต้นกับการพัฒนาและรันโปรแกรม PHP ในสภาพแวดล้อมที่เป็นอิสระและทดสอบง่าย.

เนื้อหา

1. ทำความรู้จักกับ Docker
2. ติดตั้ง Docker
3. สร้าง Dockerfile สำหรับ PHP-FPM
4. สร้าง Docker Compose สำหรับการใช้งาน PHP-FPM
5. ทดสอบแอปพลิเคชัน PHP ผ่าน Docker
  1. ทำความรู้จักกับ Docker

    Docker เป็นแพลตฟอร์มที่ช่วยในการสร้างและรันแอปพลิเคชันในสภาพแวดล้อมเรียบง่ายโดยใช้คอนเทนเนอร์. คอนเทนเนอร์ Docker มีความพร้อมใช้งานทันทีและสามารถถูกย้ายไปยังสภาพแวดล้อมอื่น ๆ ได้อย่างง่ายดาย.

  2. ติดตั้ง Docker

    ถ้าคุณยังไม่ได้ติดตั้ง Docker ให้ไปที่เว็บไซต์ Docker และดาวน์โหลด Docker Desktop สำหรับระบบปฏิบัติที่คุณใช้งาน (Windows, macOS, หรือ Linux) แล้วติดตั้งในเครื่องของคุณ.

  3. สร้าง 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 ของเรา
  1. สร้าง 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 และชื่อฐานข้อมูล
  1. ทดสอบแอปพลิเคชัน PHP ผ่าน Docker

    เมื่อคุณสร้าง Docker Compose สำหรับ PHP-FPM และ MySQL ให้ทำตามนี้: ในโฟลเดอร์ของโค้ดของคุณ (ในตัวอย่างนี้คือ ./app) สร้างไฟล์ PHP อย่างเช่น index.php และเขียนโค้ด PHP ตัวอย่าง:

<?php
echo "Hello, Docker PHP-FPM!";
?>
  1. เปิดหน้าเทอมินัล (Terminal) และเข้าไปในโฟลเดอร์ที่มีไฟล์ docker-compose.yml
  2. ใช้คำสั่งต่อไปนี้เพื่อสร้างและรันคอนเทนเนอร์ Docker สำหรับ PHP-FPM และ MySQL:
docker-compose up -d

คำสั่งนี้จะสร้างและเริ่มต้นคอนเทนเนอร์ในพื้นหลัง

  1. เมื่อทุกอย่างพร้อมแล้ว คุณสามารถเข้าถึงแอปพลิเคชัน PHP ที่กำหนดไว้ใน index.php ได้โดยเข้า URL http://localhost:9000/index.php ในเบราว์เซอร์ของคุณ
  2. หากคุณได้สร้างฐานข้อมูล MySQL คุณสามารถเชื่อมต่อกับ MySQL ผ่านพอร์ต 3306 และข้อมูลการเข้าสู่ระบบที่คุณกำหนดใน Docker Compose

สรุป

ในบทความนี้เราได้ทำความรู้จักกับการใช้งาน PHP-FPM ผ่าน Docker และ Docker Compose เราได้สร้าง image: Docker สำหรับ PHP-FPM และ MySQL ซึ่งทำให้สามารถพัฒนาและทดสอบแอปพลิเคชัน PHP ในสภาพแวดล้อมที่เป็นอิสระและมีความสะดวกสบาย Docker เป็นเครื่องมือที่มีประโยชน์ในการจัดการและปรับปรุงการพัฒนาแอปพลิเคชันของคุณในรูปแบบคอนเทนเนอร์อย่างมีประสิทธิภาพ

คลิก zap บทความนี้


Write a comment
No comments yet.