Hướng dẫn build WordPress với docker ở localhost

Build thư mục source code cho WordPress ở máy tính local

Để chạy WordPress bằng docker ở localhost thay cho XAMPP khá đơn giản.

  • Đầu tiên tạo 1 file docker-compose.yml với cấu hình file như sau:
  • Thay đổi các thông tin cấu hình như Password user, password wordpress theo cá nhân.
  • Mở cmd hoặc powershell vào thư mục chưa file docker-compose.yml
  • Chạy lệnh cài đặt wordpress bằng docker-compose
docker-compose up -d
version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - ./db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./wordpress:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress: {}

Sửa lỗi “Liên kết bạn theo dõi đã hết hạn” docker

Lỗi này xảy ra do cấu hình upload-max-size của php trong docker images quá nhỏ. Chúng ta cần mở rộng cấu hình upload cho PHP.

Ở đây khi cài themes cho website thì mình gặp trường hợp lỗi “Liên kết bạn theo dõi đã hết hạn”. Đầu tiên tạo 1 file uploads.ini nằm ngang trong thư mục chứa file docker-compose.yml.

file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600

Sau đó thêm dòng định nghĩa volumes cho upload.ini trong file docker_compose.yml

- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

Kết quả trong file docker-compose.yml ta được như sau:

version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - ./db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./wordpress:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress: {}

Tiếp theo kill docker-compose đang chạy với lệnh

docker-compose kill

Cuối cùng là build lại docker-compose với option –build

docker-compose up -d --build

Sửa lỗi “Liên kết bạn theo dõi đã hết hạn” khi upload themes với docker

Cách khác để sửa lỗi trên là chúng ta có thể truy cập trực tiếp vào docker container để thay đổi.

Truy cập vào docker CLI bằng command

docker exec -it <container_id> /bin/bash

Xem file php.ini ở đâu trên hệ thống bằng lệnh

php --ini
# php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File:         (none)
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed:      /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini,
/usr/local/etc/php/conf.d/docker-php-ext-intl.ini,
/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
/usr/local/etc/php/conf.d/error-logging.ini,
/usr/local/etc/php/conf.d/opcache-recommended.ini

Sau đó thì ta vào file ini tại đường dẫn trên và sửa lại các cấu hình mong muốn là được

Liên quan đến upload của php thì thay đổi các thông tin bên dưới trong file php.ini

file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600

Tham khảo: https://docs.docker.com/samples/wordpress/

Viết một bình luận