Bài viết

🚀 Hướng Dẫn Chạy WordPress Bằng Docker

📝 Giới thiệu

Docker giúp triển khai WordPress nhanh chóng mà không cần cài đặt thủ công các thành phần như Apache, MySQL. Trong hướng dẫn này, chúng ta sẽ chạy WordPress trên Docker với cấu hình tối ưu.


📦 Cấu Hình docker-compose.yml

Dưới đây là tệp docker-compose.yml để chạy WordPress với MySQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: "3.7"
services:
  wordpress:
    image: wordpress:latest
    volumes:
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./server:/var/www/html
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: admin
      WORDPRESS_DB_PASSWORD: admin123
      WORDPRESS_DB_NAME: wordpress_db
      WORDPRESS_ADMIN_USER: admin
      WORDPRESS_ADMIN_PASSWORD: admin123
      WORDPRESS_ADMIN_EMAIL: [email protected]
    depends_on:
      - db

  db:
    image: mysql:latest
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - 3307:3306
    environment:
      MYSQL_DATABASE: wordpress_db
      MYSQL_USER: admin
      MYSQL_PASSWORD: admin123
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_ROOT_HOST: "%"

🔍 Phân Tích docker-compose.yml

1. wordpress Service:

  • image: wordpress:latest → Sử dụng bản mới nhất của WordPress.
  • volumes:
    • ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini → Cấu hình PHP để tăng dung lượng upload.
    • ./server:/var/www/html → Lưu trữ mã nguồn WordPress bên ngoài container.
  • ports: 8080:80 → Truy cập WordPress qua http://localhost:8080.
  • environment:
    • WORDPRESS_DB_HOST: db → Kết nối với database service có tên db.
    • WORDPRESS_DB_USER: admin, WORDPRESS_DB_PASSWORD: admin123, WORDPRESS_DB_NAME: wordpress_db → Thông tin kết nối database.
    • WORDPRESS_ADMIN_USER: admin, WORDPRESS_ADMIN_PASSWORD: admin123 → Tài khoản admin WordPress.
  • depends_on: db → Chờ database khởi động trước khi chạy WordPress.

2. db Service:

  • image: mysql:latest → Sử dụng bản MySQL mới nhất.
  • restart: always → Tự động khởi động lại nếu container gặp sự cố.
  • command: --default-authentication-plugin=mysql_native_password → Dùng cơ chế xác thực tương thích với WordPress.
  • ports: 3307:3306 → Mở cổng 3307 trên máy để truy cập database.
  • environment:
    • MYSQL_DATABASE: wordpress_db → Tạo database wordpress_db.
    • MYSQL_USER: admin, MYSQL_PASSWORD: admin123 → Tạo user quản lý database.
    • MYSQL_ROOT_PASSWORD: root123 → Mật khẩu root của MySQL.
    • MYSQL_ROOT_HOST: '%' → Cho phép truy cập từ bất kỳ địa chỉ nào.

🔧 Cấu Hình PHP (uploads.ini)

Để tăng dung lượng tải lên, tạo tệp uploads.ini:

1
2
3
4
5
file_uploads = On
memory_limit = 512M
upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 600

🚀 Cách Chạy WordPress với Docker

  1. Tạo thư mục dự án:
    1
    
    mkdir wordpress-docker && cd wordpress-docker
    
  2. Tạo tệp docker-compose.ymluploads.ini theo cấu hình trên.
  3. Chạy Docker Compose:
    1
    
    docker-compose up -d
    
  4. Truy cập WordPress: Mở trình duyệt và vào địa chỉ http://localhost:8080 để bắt đầu cài đặt WordPress.

🎯 Ưu Điểm Khi Chạy WordPress Bằng Docker

✅ Dễ dàng thiết lập và chạy WordPress nhanh chóng. ✅ Môi trường cách ly, không ảnh hưởng đến hệ thống chính. ✅ Linh hoạt trong việc cấu hình và mở rộng.

Nếu bạn gặp lỗi, hãy kiểm tra logs bằng:

1
docker-compose logs -f

Chúc bạn triển khai WordPress thành công! 🚀

Bài viết này được cấp phép bởi tác giả theo giấy phép CC BY 4.0 .