0
0
Lập trình
NM

Phát triển dự án WordPress với Docker: Tạo dự án mới

Đăng vào 6 tháng trước

• 7 phút đọc

Giới thiệu

Trong loạt bài viết này, chúng ta sẽ cùng khám phá cách triển khai các dự án WordPress trên máy tính cục bộ và sau đó chuyển giao dự án lên máy chủ. Chúng ta sẽ đề cập đến nhiều khía cạnh liên quan đến việc triển khai các dự án mới và hiện có, sao lưu, chuyển giao dự án hiện có, truy cập cơ sở dữ liệu, và nhiều hơn nữa.

PHẦN 1: Tạo dự án mới

WordPress đã xuất hiện từ lâu và mới đây đã kỷ niệm 20 năm thành lập. Dự án này đã thành công rực rỡ, khi mà ngày nay có rất nhiều trang web được xây dựng trên nền tảng này. Có lẽ có những lập trình viên đã làm việc với WordPress trong suốt hai mươi năm qua. Trong những trải nghiệm của tôi, WordPress không chỉ là một CMS sẵn có để triển khai mà còn là nền tảng cho việc tạo ra những dự án không tầm thường, như một thị trường cung cấp sản phẩm nông nghiệp.

Trước đây, tôi đã sử dụng LAMP để triển khai và phát triển các dự án WordPress. Sau đó, tôi đã đơn giản hóa quy trình phát triển bằng cách sử dụng các máy chủ cục bộ sẵn có như OpenServer. Tuy nhiên, sự phát triển của công nghệ đã mang đến những công cụ mới cho phép chúng ta nhanh chóng triển khai các dự án và cài đặt chúng trên máy chủ mà không tốn quá nhiều thời gian. Hiện tại, tôi đã chuyển sang sử dụng Docker cho việc phát triển, và tôi muốn giới thiệu đến các bạn về cách làm việc với Docker.

Trong phần đầu tiên này, chúng ta sẽ làm quen với quy trình tạo một dự án WordPress từ đầu.

Tôi hy vọng rằng các bạn đã biết Docker là gì. Nếu bạn chưa cài đặt phiên bản cục bộ, bạn có thể tải xuống từ trang web chính thức Docker.com.

Cấu trúc dự án

Bắt đầu thôi nào. Bây giờ bạn có thể tạo một thư mục cho dự án của mình. Mở thư mục và tạo cấu trúc dưới đây bên trong.

Chúng ta có 2 thư mục trống và 2 tệp tin.
Thư mục mysql sẽ chứa cơ sở dữ liệu của bạn. Thư mục wordpress sẽ chứa các tệp WordPress mà bạn sẽ chỉnh sửa sau. Hiện tại, bạn không cần phải sao chép gì vào các thư mục này.
Vì vậy, hãy tập trung vào các tệp tin.

Các tệp tin

Tệp tin .env chứa các thông tin cấu hình mặc định cho dự án của bạn. Thông thường, chúng ta không sao chép tệp này vào các kho lưu trữ hoặc chia sẻ. Tệp này chỉ dành cho hệ thống cục bộ của bạn. Tuy nhiên, việc tạo tệp ở bất kỳ đâu bạn cài đặt dự án là rất quan trọng. Hãy thay đổi tên cơ sở dữ liệu, người dùng và mật khẩu bằng thông tin của bạn.

.env

Copy
# MySQL 
MYSQL_ROOT_PASSWORD=mật_khẩu_rất_bảo_mật
MYSQL_DATABASE=wordpress_db
MYSQL_USER=wordpress_user
MYSQL_PASSWORD=mật_khẩu_rất_bảo_mật

# Cấu hình WordPress
WORDPRESS_DEBUG=0

Tệp tin docker-compose.yml là tệp chính của chúng ta. Nó chứa các hướng dẫn chi tiết để tạo dự án, các thành phần và mối quan hệ giữa chúng.

docker-compose.yml

Copy
version: '3.8'

services:
  # MySQL
  mysql:
    image: mysql:8.0
    container_name: wordpress_mysql
    restart: unless-stopped
    env_file: .env
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
    networks:
      - wordpress_network
    command: --default-authentication-plugin=mysql_native_password

  # WordPress
  wordpress:
    image: wordpress:latest
    container_name: wordpress_app
    restart: unless-stopped
    env_file: .env
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: ${MYSQL_USER}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
    volumes:
      - ./wordpress/wp-content:/var/www/html/wp-content
    ports:
      - "8000:80"
    depends_on:
      - mysql
    networks:
      - wordpress_network

  # phpMyAdmin
  phpmyadmin:
    image: phpmyadmin:latest
    container_name: wordpress_phpmyadmin
    restart: unless-stopped
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      PMA_ARBITRARY: 0
    ports:
      - "8080:80"
    depends_on:
      - mysql
    networks:
      - wordpress_network

networks:
  wordpress_network:
    driver: bridge

Hãy chú ý đến một số phần trong tệp.
Như bạn thấy, tệp có 3 khối lớn (Dịch vụ):

  • MySQL
  • WordPress
  • phpMyAdmin

Trong phần đầu tiên, Docker sẽ tạo một cơ sở dữ liệu cho dự án của chúng ta. Nó lấy các thiết lập từ tệp .env và đặt chúng làm cấu hình mặc định. Sau khi xây dựng dự án, bạn sẽ tìm thấy các tệp cơ sở dữ liệu của mình trong thư mục mysql.
Phần tiếp theo là dự án WordPress của chúng ta. Docker không cần có các tệp WordPress sẵn có. Nó sẽ tải các tệp từ thư viện Docker trong quá trình xây dựng dự án. Tất cả các tệp này sẽ được đặt trong thư mục wordpress. Các tệp này sẽ được chỉnh sửa, và Docker chỉ đặt các tệp trong thư mục wp-content. Do đó, các lập trình viên có thể yên tâm rằng mã nguồn chính của WordPress không thể bị thay đổi và họ không thể làm hỏng điều gì.
Phần cuối cùng phpMyAdmin là không bắt buộc. Tôi đã thêm nó để dễ dàng truy cập cơ sở dữ liệu hơn. Bạn có thể xóa nó và sử dụng bất kỳ công cụ nào khác để chỉnh sửa MySQL.

Hãy chú ý đến phần cuối - networks. Phần này dùng để kết nối tất cả các thành phần lại với nhau.

Chạy các Container

Bây giờ dự án của chúng ta đã sẵn sàng để chạy. Trước khi xây dựng dự án, hãy kiểm tra xem Docker đã được khởi động trên máy tính của bạn chưa.
Bây giờ hãy mở thư mục chứa docker-compose.yml trong terminal (cmd, bash) và chạy lệnh dưới đây:

Copy
docker-compose up -d

Sau vài phút, Docker sẽ xây dựng dự án và bạn có thể truy cập nó qua trình duyệt bằng các URL sau:

  • Dự án WordPress
Copy
http://localhost:8000/
  • PhpMyAdmin
Copy
http://localhost:8080/

Mở thư mục wordpress trong trình soạn thảo mã của bạn. Bây giờ bạn có thể tiếp tục phát triển trang web của mình một cách thú vị.

Thực hành tốt nhất

  • Sử dụng phiên bản Docker mới nhất: Đảm bảo bạn luôn cập nhật phiên bản Docker để tận dụng các tính năng mới và bảo mật.
  • Tách biệt môi trường phát triển và sản xuất: Đừng sử dụng cùng một cấu hình cho cả môi trường phát triển và sản xuất để tránh rủi ro.

Những cạm bẫy phổ biến

  • Quên không cấu hình tệp .env: Điều này có thể dẫn đến lỗi kết nối cơ sở dữ liệu.
  • Không kiểm tra trạng thái container: Hãy chắc chắn rằng tất cả các container đều đang chạy trước khi truy cập ứng dụng.

Mẹo hiệu suất

  • Sử dụng cache: Cài đặt các plugin cache cho WordPress để tăng tốc độ tải trang.
  • Tối ưu hóa hình ảnh: Sử dụng các công cụ nén hình ảnh để giảm dung lượng tệp.

Khắc phục sự cố

  • Lỗi kết nối cơ sở dữ liệu: Kiểm tra lại tệp .env và đảm bảo rằng các thông tin đăng nhập là chính xác.
  • Container không chạy: Kiểm tra xem Docker đã khởi động và chạy trên máy tính của bạn chưa.

Kết luận

Trong phần đầu tiên này, chúng ta đã cùng nhau tìm hiểu cách tạo một dự án WordPress đơn giản bằng Docker. Việc triển khai nhanh chóng và dễ dàng giúp bạn tập trung vào việc phát triển nội dung hơn là lo lắng về cấu hình. Hãy theo dõi phần tiếp theo để khám phá thêm nhiều tính năng thú vị khác mà Docker có thể mang lại cho bạn trong việc phát triển dự án WordPress.

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

1. Docker là gì?
Docker là một nền tảng cho phép bạn tạo, triển khai và quản lý các container ứng dụng.

2. Tôi có thể chạy nhiều dự án WordPress trên cùng một máy không?
Có, bạn có thể tạo nhiều thư mục và tệp docker-compose.yml khác nhau cho từng dự án.

3. Tôi có cần cài đặt MySQL riêng không?
Không, Docker sẽ tự động quản lý MySQL cho bạn thông qua container.

Hy vọng bài viết này hữu ích cho bạn trong việc phát triển dự án WordPress với Docker!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào