×

Làm việc với môi trường Docker để phát triển ứng dụng PHP

Docker là một công cụ mạnh mẽ hỗ trợ việc phát triển các ứng dụng phần mềm, và trong sự phát triển ứng dụng PHP, nó mang lại nhiều lợi ích đáng kể. Docker cho phép khởi tạo môi trường phát triển nhất quán giữa các máy tính khác nhau, giúp giảm thiểu tình trạng "hoạt động trên máy của tôi" nhưng không chạy trên máy khác. Bài viết này sẽ hướng dẫn cách sử dụng Docker để phát triển ứng dụng PHP một cách hiệu quả.

Cài đặt Docker

Trước tiên, bạn cần cài đặt Docker trên máy tính của mình. Docker có sẵn trên các hệ điều hành phổ biến như Windows, macOS, và Linux. Bạn có thể tải bản cài đặt từ trang chủ của Docker và làm theo hướng dẫn cài đặt chi tiết.

Khởi tạo Project PHP với Docker

Một trong những cách tốt nhất để bắt đầu là tạo một tệp tin Dockerfile. Đây là nơi bạn xác định cấu hình của môi trường cho ứng dụng PHP.

# Sử dụng imagen gốc PHP chính thức từ Docker Hub
FROM php:7.4-apache

# Cài đặt các gói bổ sung cần thiết
RUN docker-php-ext-install pdo mysqli pdo_mysql

# Sao chép mã nguồn của bạn vào container
COPY src/ /var/www/html/

# Thay đổi quyền truy cập thư mục
RUN chown -R www-data:www-data /var/www/html/

Thiết lập Docker Compose

Trong nhiều trường hợp, bạn sẽ cần khởi chạy nhiều container đồng thời, chẳng hạn như một container cho PHP và một container cho MySQL. Docker Compose giúp giải quyết vấn đề này một cách dễ dàng.

Tạo một tệp tin docker-compose.yml và thêm cấu hình cho các dịch vụ:

version: '3.1'

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html

  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: example_db
      MYSQL_USER: user
      MYSQL_PASSWORD: user_password
    ports:
      - "3306:3306"

Trong file này, chúng ta đánh dấu hai dịch vụ: một cho PHP và một cho MySQL. Bạn cần chắc chắn thay đổi thông tin đăng nhập và tên database theo nhu cầu của mình.

Chạy Docker Compose

Sau khi cấu hình Docker Compose, bạn có thể chạy lệnh sau để khởi động các dịch vụ:

docker-compose up

Lệnh này sẽ xây dựng (nếu chưa có sẵn) và khởi chạy tất cả các container được định nghĩa trong tệp docker-compose.yml. Bạn có thể truy cập ứng dụng PHP của mình thông qua địa chỉ http://localhost:8080 trong trình duyệt.

Kết nối đến MySQL từ PHP

Để kết nối đến MySQL từ ứng dụng PHP, bạn sẽ cần cấu hình kết nối với thông tin được cung cấp trong file docker-compose.yml. Một ví dụ đơn giản về kết nối PDO trong PHP:

<?php
$dsn = 'mysql:host=mysql;dbname=example_db;charset=utf8';
$username = 'user';
$password = 'user_password';

try {
    $pdo = new PDO($dsn, $username, $password);
    echo "Kết nối thành công!";
} catch (PDOException $e) {
    echo "Lỗi kết nối: " . $e->getMessage();
}
?>

Lợi ích của Docker

Sử dụng Docker giúp tạo ra môi trường phát triển nhất quán, dễ dàng chia sẻ và triển khai. Bạn không cần phải lo lắng về sự khác biệt trong cấu hình môi trường trên các máy tính khác nhau. Ngoài ra, Docker còn giúp dễ dàng quản lý các phiên bản khác nhau của môi trường phát triển, từ đó tiết kiệm thời gian và công sức.

Kết luận

Với Docker, việc phát triển ứng dụng PHP trở nên dễ dàng hơn bao giờ hết. Bạn chỉ cần một vài bước để thiết lập một môi trường phát triển toàn diện, nhất quán và dễ dàng quản lý. Hãy thử và cảm nhận sự tiện lợi mà Docker mang lại cho dự án của bạn.

Comments