Trang chủ » Install cài đặt WordPress với Docker Compose, Nginx, Apache, SSL Let’s Encrypt

Install cài đặt WordPress với Docker Compose, Nginx, Apache, SSL Let’s Encrypt

by KDATA

WordPress là nền tảng CMS phổ biến nhất hiện nay, và việc triển khai WordPress bằng Docker giúp dễ dàng quản lý, di chuyển và mở rộng hệ thống. Trong bài viết này, KDATA sẽ hướng dẫn bạn cài đặt WordPress trên Docker Compose kết hợp với Nginx, Apache, MariaDB và Let’s Encrypt SSL trên Ubuntu 22.04. Đây là một cấu hình tối ưu, đảm bảo hiệu suất và bảo mật cao.

Yêu cầu hệ thống

Trước khi tiến hành cài đặt, bạn cần đảm bảo máy chủ của mình đáp ứng các điều kiện sau:

  • Cài đặt Docker trên Ubuntu 22.04.
  • Cài đặt Docker Compose trên Ubuntu 22.04.
  • Domain đã trỏ về IP máy chủ.

Nếu đã đáp ứng đủ các yêu cầu trên, chúng ta sẽ tiến hành triển khai WordPress với Docker.

Cài đặt WordPress với Docker Compose

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

SSH vào máy chủ và tạo thư mục chứa dự án:

Sale cuối năm
cd /home
mkdir wp-project
cd wp-project

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

Tạo một file mới có tên docker-compose.yml và thêm nội dung sau:

version: "3.9"
services:
    wordpress:
        container_name: wordpress
        image: wordpress:php8.1-apache
        restart: always
        environment:
            WORDPRESS_DB_HOST: mariadb
            WORDPRESS_DB_USER: db_user
            WORDPRESS_DB_PASSWORD: db_user_pass
            WORDPRESS_DB_NAME: db_name
        volumes:
            - wordpress_data:/var/www/html
    mariadb:
        container_name: mariadb
        image: mariadb
        restart: always
        environment:
            MYSQL_DATABASE: db_name
            MYSQL_USER: db_user
            MYSQL_PASSWORD: db_user_pass
            MYSQL_RANDOM_ROOT_PASSWORD: 'root_pass'
        volumes:
            - db_data:/var/lib/mysql
    nginx:
        container_name: nginx
        image: nginx:latest
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./nginx/conf:/etc/nginx/conf.d
            - ./certbot/conf:/etc/nginx/ssl
            - ./certbot/data:/var/www/html
    certbot:
        container_name: certbot
        image: certbot/certbot:latest
        command: certonly --webroot --webroot-path=/var/www/html --email your-email@domain.com --agree-tos --no-eff-email -d domain.com -d www.domain.com
        volumes:
            - ./certbot/conf:/etc/letsencrypt
            - ./certbot/logs:/var/log/letsencrypt
            - ./certbot/data:/var/www/html
volumes:
    db_data:
    wordpress_data:

Thay thế domain.comyour-email@domain.com bằng thông tin của bạn.

Bước 3: Cấu hình Nginx

Tạo thư mục chứa file cấu hình:

mkdir -p nginx/conf
nano nginx/conf/default.conf

Thêm nội dung sau vào default.conf:

server {
    listen 80;
    server_name domain.com www.domain.com;
    root /var/www/html;
    index index.php;

    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/html;
    }

    location / {
        try_files $uri @apache;
    }

    location @apache {
        proxy_pass //wordpress:80;
    }
}

Lưu ý thay domain.com bằng domain của bạn.

Bước 4: Triển khai WordPress với Docker Compose

Chạy lệnh sau để khởi động các containers:

docker-compose up -d

Kiểm tra trạng thái:

docker-compose ps

Nếu tất cả containers hoạt động, bạn đã cài đặt thành công.

Install WordPress với Docker Compose, Nginx, Apache, SSL Let’s Encrypt

Bước 5: Cấu hình Let’s Encrypt SSL

Mở file default.conf:

nano nginx/conf/default.conf

Thêm đoạn sau để chuyển hướng HTTP sang HTTPS:

server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 //domain.com$request_uri;
}

server {
    listen 443 ssl;
    server_name domain.com;
    ssl_certificate /etc/nginx/ssl/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/live/domain.com/privkey.pem;
    return 301 //www.domain.com$request_uri;
}

Cuối cùng, khởi động lại Nginx:

docker-compose restart nginx

cài đặt WordPress với Docker Compose, Nginx, Apache, SSL Let’s Encrypt

Kết luận

Bạn đã hoàn tất việc cài đặt WordPress với Docker, Nginx, Apache và SSL. Hệ thống này giúp bạn dễ dàng quản lý và bảo mật website. Nếu có bất kỳ vấn đề gì, hãy liên hệ KDATA để được hỗ trợ.

Câu hỏi thường gặp (FAQs)

1. Tại sao nên sử dụng Docker để cài đặt WordPress?

Docker giúp triển khai nhanh chóng, dễ dàng quản lý và di chuyển giữa các máy chủ.

2. Tôi có thể sử dụng MySQL thay vì MariaDB không?

Có, bạn chỉ cần thay đổi image MariaDB thành MySQL trong docker-compose.yml.

3. Làm thế nào để cập nhật WordPress khi dùng Docker?

Chạy lệnh sau để cập nhật:

docker-compose pull wordpress
docker-compose up -d

4. Làm thế nào để sao lưu dữ liệu WordPress khi sử dụng Docker?

Bạn có thể sao lưu thư mục wordpress_datadb_data bằng lệnh docker volume hoặc rsync.

5. Làm sao để kiểm tra logs của container?

Sử dụng lệnh:

docker logs wordpress -f

Nếu bạn cần hỗ trợ chuyên sâu hơn, hãy liên hệ ngay với KDATA.

Bài viết liên quan