Suốt bao nhiêu năm trời mình vẫn không thể nào chạy nổi wordpress trên hệ điều hành của mình với Apache2 mặc định, và cho đến giờ vẫn thế, loay hoay mãi cuối cùng mình cũng tìm cách chạy được với docker.

Bối cảnh

Cực chẳng đã mình mới phải dùng wordpress vì khách hàng vừa muốn chuyển từ wordpress sang EzyPlatform để nâng cấp toàn bộ hệ thống của họ lên phiên bản 3, trong lúc đó vẫn phải fix các lỗi của phiên bản 2 dùng wordpress nên lại lọ mọi cài đặt.

Các bước cài đặt

Với docker mình cũng phải loay hoay mất khá nhiều thời gian.

Tạo thư mục

Đầu tiên bạn cần tạo một thư mục, không cần quyền cao chức trọng gì cho thư mục này, không cần phải sudo gì cả, cứ tạo bình thường, ví dụ thư mục của mình tạo sẽ là /Users/tvd12/Sites.

Tải wordpress

Bạn có thể tải wordpress theo phiên bản mà mình cần tại đây.

Tiếp theo bạn sẽ cần giải nén wordpress vừa tải và copy toàn bộ thư mục wordpress vừa được giải nén vào thư mục /Users/tvd12/Sites, nghĩa là bạn có thư mục /Users/tvd12/Sites/wordpress.

Tạo file docker-compose.yml

Bạn sẽ cần tạo ra file docker-compose.yml thế này trong thư mục /Users/tvd12/Sites (nghĩa là bạn có tập tin /Users/tvd12/Sites/docker-compose.yml) :

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    ports:
      - "9091:80"
    environment:
      WORDPRESS_DB_HOST: host.docker.internal:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 12345678
      WORDPRESS_DB_NAME: wordpress_vietales
    volumes:
      - /Users/tvd12/Sites/wordpress/wp-content/themes:/var/www/html/wp-content/themes
      - /Users/tvd12/Sites/wordpress/wp-content/plugins:/var/www/html/wp-content/plugins
      - /Users/tvd12/Sites/wordpress/wp-content/uploads:/var/www/html/wp-content/uploads
      - /Users/tvd12/Sites/wordpress/wp-content/debug.log:/var/www/html/wp-content/debug.log
    restart: always

volumes:
  wordpress_data:

Ở đây bạn đang sử dụng cơ sở dữ liệu ở máy host, nghĩa là máy mac của bạn chứ không phải ở trong container. Bạn cũng mount một số thư mục với máy host để có thể tuỳ chỉnh được theme.

Chạy

Giờ thì đơn giản thôi, bạn di chuyển đến thư mục /Users/tvd12/Sites và chạy lệnh docker compose up. Đợi nó cài đặt các bước cần thiết và bạn có thể thấy logs:

Container wordpress  Recreated                                          0.1s 
Attaching to wordpress

Sau đó bạn có thể truy cập vào http://localhost:9091/ và tiến hành các bước cài đặt là xong, chúc các bạn thành công!