Cẩm nang NQDEV
HomeCheat SheetsContact
Công nghệ
Công nghệ
  • Introduction
  • Developer Roadmaps
    • Developer Roadmaps: Mô tả chi tiết
    • Roadmaps: ASP.NET Core Developer
    • Bảng phân loại cấp độ nhà phát triển .NET
    • ClearPath cho Team .NET Core
  • DotNET
    • ASP.NET Core
      • Hướng dẫn sử dụng tệp .http trong Visual Studio 2022 để thực hiện HTTP Requests
    • Message Queue
      • ZeroMQ
        • Xây dựng ZeroMQ Server trong dotNET 8 với CSharp
    • Playwright
      • Playwright: Tự Động Hóa Trình Duyệt Hiệu Quả
    • Optimize
      • Optimize - Một số cách tối ưu code và performance CSharp
    • Dev Blogs
      • Versions of .NET
        • Cập nhật từ .NET 9 lên .NET 10: Những thay đổi quan trọng
      • ASP.NET Core Web API với ASP.NET Core Web API (Native AOT): Bạn nên chọn loại nào?
      • Hướng dẫn xây dựng ứng dụng multi-tenant với .NET Core và MongoDB
      • Kiến Trúc Monolithic và Microservices: Lựa Chọn Phù Hợp Cho Dự Án Của Bạn
  • Design Patterns
    • CQRS Pattern
      • CQRS and MediatR trong .NET Core
    • Microservices
      • Ocelot
  • SQL Server
    • SQL Server Basics
    • SQL Server: DBCC
      • DBCC
      • DBCC SHOW_STATISTICS
      • DBCC SHRINKDATABASE
      • DBCC SHRINKFILE
      • DBCC SQLPERF
      • DBCC FREEPROCCACHE
    • SQL Server Replication
      • Giới thiệu SQL Server Replication
      • Hướng dẫn cấu hình và quản lý SQL Server Replication với Distribution Agent
    • SQL Server: Tập lệnh
      • SQL Server: Tập lệnh để tìm tất cả các giá trị Mặc định với Cột
    • Bảng tạm và sự linh hoạt trong xử lý dữ liệu lớn
    • Các bước để thay đổi nơi lưu trữ tệp log trong SQL Server
    • Các bước di chuyển tệp log trong SQL Server
    • Query Store trong SQL Server - Tổng Quan và Cách Quản Lý Hiệu Quả
    • SQL Server: Error Code
      • SQL Server Error : 14151, Severity: 18. Replication agent
  • Caching
    • Phân tích các phương pháp Caching dữ liệu trong .NET Core và .NET Framework
    • Redis
      • Redis mất dữ liệu khi restart
    • Varnish Cache
      • Hướng Dẫn Cài Đặt Varnish Cache với HAProxy Sử Dụng Docker Compose
  • NodeJS
    • NextJS
      • Hướng dẫn NextJS cho người mới bắt đầu
      • Parallel Routes trong Next.js
      • Hướng dẫn cấu hình Swagger trong NextJS
    • ReactJS
      • Hiểu về hook useRef của React như thế nào cho đúng
      • Tìm hiểu sâu hơn về useEffect từ A-Z
  • OS Linux
    • Tập lệnh Linux hay dùng
    • Centos 7
      • Hướng dẫn cài đặt và cấu hình Centos 7 dành cho người mới bắt đầu
      • Hướng Dẫn Kiểm Tra Các Cổng Đang Mở Trên Hệ Thống CentOS
      • Hướng Dẫn Sử Dụng zip Trên CentOS
      • Hướng dẫn cấu hình iptables để mở tất cả các cổng cho IP private
    • Windows
      • Hướng dẫn quản lý ứng dụng khởi động Windows bằng Registry Editor
  • VMware
    • Cách ảo hóa macOS Sierra trong VMWare Windows 10
    • Tự tin làm chủ mạng lưới: Cẩm nang tính toán địa chỉ IP từ A đến Z
  • Docker
    • Getting Started with Docker
    • Docker HUB
      • nqdev/nginx
  • Templates
    • Tabler Admin Template: Xây dựng Dashboard Quản trị đẹp mắt và dễ dàng
  • Open Source
    • shadcn-ui/ui
    • Kuma UI
    • Midone
  • Ứng dụng
    • Ansible
      • Ansible: Giới thiệu
      • Hướng dẫn chi tiết cài đặt Ansible
    • Apache JMeter
      • Features
        • Hướng dẫn chi tiết về Test Plan trong JMeter
        • Hướng dẫn chi tiết về Thread Group trong JMeter
    • DocFX
      • Những khái niệm cơ bản trong DocFX
      • DocFX - Hướng dẫn cài đặt, cấu hình sử dụng
      • DocFX - Hướng dẫn Markdown
      • DocFX - Hướng dẫn cấu hình file docfx.json
      • DocFX - Hướng dẫn sử dụng và tùy chỉnh Template
    • ETL Tools
      • Công cụ ETL Tools List & Software
      • Airbyte
        • Docker Compose
    • Elasticsearch
      • _reindex
        • Tìm hiểu sâu về API _reindex trong Elasticsearch
        • Hướng dẫn di chuyển dữ liệu trong Elasticsearch sử dụng API _reindex
      • _transform
    • HAProxy
      • HAProxy - Lập trình Lua và tích hợp Redis
    • Localtunnel
      • Hướng dẫn sử dụng Localtunnel để đưa ứng dụng Local lên Internet
    • LoopBack
      • Hướng dẫn cài đặt LoopBack 4 và khởi tạo dự án đầu tiên
    • N8N
      • Hướng dẫn cài đặt n8n bằng docker compose
    • NGINX Plus
      • NGINX: Hiệu suất vượt trội và giải pháp tối ưu cho hệ thống web
      • NGINX: Hướng dẫn chi tiết sử dụng GeoIP2 trên Alpine
      • NGINX: Hướng dẫn sử dụng Lua trên Alpine
      • NGINX: Hướng Dẫn Chi Tiết Cấu Hình Load Balancer
      • NGINX: Hướng Dẫn Sử Dụng Dynamic Modules
      • NGINX: Hướng dẫn Cài đặt và Sử dụng Module njs
      • Tích Hợp NGINX Làm API Gateway với Các Bước Xử Lý Phổ Biến
    • NTP - Secure Timeserver
      • Hướng dẫn cài đặt NTP an toàn với Docker Compose
    • Playwright
      • Playwright: Tự Động Hóa Trình Duyệt Hiệu Quả
    • Wordpress
      • Cách dùng Docker để phát triển ứng dụng Wordpress
  • Tin tức
    • DevSecOps là gì?
    • Giới thiệu bộ công cụ hỗ trợ lập trình từ SmallDev.tools và Code Beautify
    • Giới Thiệu và Hướng Dẫn Về DuckDB
    • Giới thiệu về Các Loại Cơ Sở Dữ Liệu
      • 1. HSQLDB (HyperSQL Database)
    • Hệ thống phân giải tên miền (DNS) và các loại bản ghi
    • Giải thích về Tiền Tố Path Nổi Tiếng – /.well-known
    • Giải mã Hệ thống tạo mã OTP của Google Authenticator
    • Quishing là gì? Hiểu và phòng tránh lừa đảo qua mã QR
  • Hướng dẫn
    • Hướng dẫn chi tiết tạo tài khoản Google bằng email công ty
    • Top 10 ASP .NET Open Source Projects GitHub 2024
    • Free Themes and Templates from Creative Tim
    • Hướng dẫn sử dụng Voler và Mazer Dashboard từ Zuramai
  • So Sánh
    • So Sánh Apache Parquet và CSV: Bảng So Sánh Chi Tiết, Ưu và Nhược Điểm
    • So Sánh Varnish Cache, Memcached và Redis: Ba Công Cụ Caching Phổ Biến trong Tối Ưu Hóa Hiệu Suất
  • Affiliate
    • Tuyển dụng
      • Bộ câu hỏi phỏng vấn T-SQL – Đánh giá ứng viên hiệu quả
    • eSMSvn: Chăm sóc khách hàng hiệu quả với SMS và ZNS
    • eSMS.vn: Giải pháp SMS Marketing hiệu quả cùng các chương trình ưu đãi hấp dẫn
Powered by GitBook
On this page
  • Giới thiệu
  • 1. Cài Đặt Docker và Docker Compose
  • Cài Docker trên Linux (Ubuntu/Debian)
  • Cài Docker Compose
  • Kiểm tra phiên bản:
  • 2. Tạo Cấu Trúc Dự Án WordPress Với Docker
  • Bước 1: Tạo thư mục dự án
  • Bước 2: Tạo docker-compose.yml
  • 3. Cấu Hình Nginx Cho WordPress
  • Tạo thư mục cấu hình nginx:
  • Tạo file nginx/default.conf để cấu hình Nginx:
  • 4. Cấu Hình PHP (PHP.ini)
  • Tạo thư mục cấu hình PHP:
  • Tạo file php/php.ini:
  • 5. Chạy Docker Compose Và Truy Cập WordPress
  • 6. Một Số Lệnh Hữu Ích Khi Làm Việc Với Docker
  • 7. Kết Luận

Was this helpful?

  1. Ứng dụng
  2. Wordpress

Cách dùng Docker để phát triển ứng dụng Wordpress

PreviousWordpressNextTin tức

Last updated 3 months ago

Was this helpful?

Giới thiệu

Việc thiết lập môi trường phát triển WordPress thường yêu cầu cài đặt nhiều công cụ như PHP, MySQL, và Nginx. Tuy nhiên, với Docker, bạn có thể nhanh chóng xây dựng một môi trường phát triển đồng nhất, dễ bảo trì và triển khai.

Trong bài viết này, sẽ hướng dẫn bạn cách sử dụng Docker để tạo môi trường WordPress hoàn chỉnh, đồng thời tìm hiểu cách: ✅ Cấu hình lại Nginx. ✅ Thay đổi config PHP. ✅ Thiết lập boilerplate cho các dự án PHP/WordPress.


1. Cài Đặt Docker và Docker Compose

Trước khi bắt đầu, bạn cần cài đặt Docker và Docker Compose trên máy của mình.

Cài Docker trên Linux (Ubuntu/Debian)

sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Cài Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Kiểm tra phiên bản:

docker --version
docker-compose --version

2. Tạo Cấu Trúc Dự Án WordPress Với Docker

Chúng ta sẽ thiết lập môi trường WordPress + Nginx + MySQL bằng Docker Compose.

Bước 1: Tạo thư mục dự án

mkdir wordpress-docker
cd wordpress-docker

Bước 2: Tạo docker-compose.yml

Tạo file docker-compose.yml để định nghĩa các container:

docker-compose.yml
version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress_app
    restart: always
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wordpress:/var/www/html

  mysql:
    image: mysql:5.7
    container_name: wordpress_db
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - ./db_data:/var/lib/mysql

  nginx:
    image: nginx:latest
    container_name: wordpress_nginx
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./wordpress:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - wordpress

3. Cấu Hình Nginx Cho WordPress

Tạo thư mục cấu hình nginx:

mkdir nginx

Tạo file nginx/default.conf để cấu hình Nginx:

default.conf
server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

4. Cấu Hình PHP (PHP.ini)

Để thay đổi config PHP, bạn có thể tạo một file php.ini và mount nó vào container.

Tạo thư mục cấu hình PHP:

mkdir php

Tạo file php/php.ini:

php.ini
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 512M
max_execution_time = 300

Sau đó, sửa docker-compose.yml để mount file này vào container:

volumes:
  - ./php/php.ini:/usr/local/etc/php/conf.d/custom.ini

5. Chạy Docker Compose Và Truy Cập WordPress

Sau khi đã thiết lập xong, chạy lệnh sau để khởi động các container:

docker-compose up -d

Kiểm tra container đang chạy:

docker ps

Truy cập http://localhost:8080 để cài đặt WordPress.


6. Một Số Lệnh Hữu Ích Khi Làm Việc Với Docker

  • Dừng toàn bộ container:

    docker-compose down
  • Xem logs của container:

    docker-compose logs -f
  • Truy cập vào container WordPress:

    docker exec -it wordpress_app bash
  • Khởi động lại container:

    docker-compose restart

7. Kết Luận

Sử dụng Docker giúp bạn thiết lập môi trường phát triển WordPress nhanh chóng và dễ dàng hơn. Bạn không cần cài đặt từng thành phần riêng lẻ mà có thể sử dụng boilerplate để triển khai ngay lập tức.

✅ Cấu hình lại Nginx để phục vụ WordPress. ✅ Thay đổi config PHP để tối ưu hiệu suất. ✅ Xây dựng boilerplate cho dự án PHP/WordPress của bạn.

Hy vọng bài viết từ Cẩm nang NQDEV sẽ giúp bạn triển khai WordPress bằng Docker một cách chuyên nghiệp! 🚀


Nếu bạn có bất kỳ câu hỏi nào, hãy để lại bình luận nhé! 🚀

Nếu thấy nội dung này bổ ích, hãy mời tôi một tách cà phê nha!

Cẩm nang NQDEV
https://me.momo.vn/nhquydev
☕️
☕️