Hiện tại, KazeWP – công cụ triển khai, quản lý WordPress với Docker, Caddy và bash script của mình chưa có tích hợp phpMyAdmin. Lý do vì mình chưa bao giờ cần phải dùng đến phpMyAdmin khi quản lý WordPress. Chủ yếu mình quản lý WordPress qua WP-CLI hoặc khi cần đụng tới mysql thì sẽ gõ lệnh luôn trong command line.
Dạo gần đây có vẻ KazeWP bắt đầu được chia sẻ nhiều hơn và khá nhiều bạn đã thắc mắc làm sao để cài đặt phpMyAdmin. Dưới đây là hướng dẫn cách tích hợp phpMyAdmin khi sử dụng KazeWP
Mục Lục
1. Cài đặt thủ công
Truy cập vào thư mục của website bạn cần cài đặt phpMyAdmin để truy xuất vào mysql. Chỉnh sửa file compose.yml
vào thêm vào đoạn này ngay trước phần khai báo networks:
phpmyadmin:
container_name: phpmyadmin_kazewp.com
depends_on:
- db_kazewp.com
image: phpmyadmin/phpmyadmin
environment:
- PMA_HOST=db_kazewp.com
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
restart: always
ports:
- "8080:80"
networks:
- kazewp.com_net
Code language: YAML (yaml)
Lưu ý: cần thay thế kazewp.com
thành tên miền tương ứng của bạn.
Sau đó kích hoạt lại bằng lệnh
docker compose up -d
Code language: Nginx (nginx)
Truy cập vào phpMyAdmin theo địa chỉ http://<IP>:8080
, đăng nhập bằng tài thông tin tài khoản MYSQL_USER & MYSQL_PASSWORD được lưu trong file .env
. Gõ lệnh cat .env
để xem nội dung file.
Để bảo đảm bảo mật, sau khi sử dụng, các bạn nên tạm ngưng phpMyAdmin
docker compose stop phpmyadmin
Code language: Nginx (nginx)
2. Cập nhật KazeWP lên phiên bản mới
Mình vừa mới cập nhật nhanh để KazeWP để hỗ trợ thêm phpMyAdmin. Hiện tại phiên bản này đang được lưu bên nhánh development, chưa đẩy lên nhánh chính. Đợi kiểm tra thử nghiệm ổn định và tối ưu hơn, mình sẽ đẩy qua nhánh chính sau.
Mình đã cập nhật KazeWP, bổ sung thêm một số tính năng:
- Hỗ trợ cài đặt phpMyAdmin
- Bổ sung thêm tùy chọn restart caddy vào menu
- Bổ sung thêm lệnh
./kazewp.sh restart caddy
để khởi động lại Caddy - Sắp xếp lại cấu trúc thư mục gọn gàng hơn
Các bạn có thể cập nhật KazeWP bằng lệnh
git pull
Code language: Nginx (nginx)
Hoặc có thể xóa, clone lại từ đầu
git clone https://github.com/10h30/kazewp
Code language: PHP (php)
Khi khởi tạo website mới, giờ sẽ có thêm dòng Do you want to include phpMyAdmin? (y/n) , chỗ này nhớ chọn y để file compose.yml
được bổ sung thêm phần khai báo dịch vụ cho phpMyAdmin.

File compose.yaml
hoàn chỉnh sẽ tương tự như sau
services:
db_thuanbui.com:
container_name: db_thuanbui.com
image: mariadb:11.2-jammy
volumes:
- ./db_data:/var/lib/mysql
restart: always
env_file:
- .env
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "--silent"]
interval: 10s
timeout: 5s
retries: 3
networks:
- thuanbui.com_net
wordpress_thuanbui.com:
container_name: wordpress_thuanbui.com
depends_on:
- db_thuanbui.com
image: wordpress:fpm-alpine
volumes:
- ./html/:/var/www/html
env_file:
- .env
restart: always
networks:
- thuanbui.com_net
- caddy_net
wpcli:
depends_on:
- db_thuanbui.com
- wordpress_thuanbui.com
env_file:
- .env
image: wordpress:cli
entrypoint: wp
command: "--info"
volumes_from:
- wordpress_thuanbui.com
networks:
- thuanbui.com_net
- caddy_net
phpmyadmin:
container_name: phpmyadmin_thuanbui.com
depends_on:
- db_thuanbui.com
image: phpmyadmin/phpmyadmin
environment:
- PMA_HOST=db_thuanbui.com
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
restart: always
networks:
- thuanbui.com_net
- caddy_net
networks:
thuanbui.com_net:
driver: bridge
caddy_net:
external: true
Code language: YAML (yaml)
Tuy nhiên, khi bạn kích hoạt WordPress bằng lệnh docker compose up -d
, phpMyAdmin sẽ không tự động chạy (do cấu hình bởi 2 dòng 60-61). Mình cố ý thiết lập như thế để tránh nguy cơ bảo mật, và cũng để tránh xung đột khi có nhiều site hoạt động, các dịch vụ phpmyadmin sẽ bị đụng nhau vì cùng sử dụng port 8080.
Truy cập vào phpMyAdmin theo địa chỉ http://<IP>:8080
, đăng nhập bằng tài thông tin tài khoản MYSQL_USER
& MYSQL_PASSWORD
được lưu trong file .env
. Gõ lệnh cat .env
để xem nội dung file.
phpMyAdmin sẽ tự động được kích hoạt cùng với WordPress. Truy cập vào phpMyAdmin bằng địa chỉ https://<domain>/pma/
Sau khi sử dụng xong, bạn nên tắt phpMyAdmin để bảo đảm an toàn, bảo mật. Truy cập vào thư mục của website và gõ lệnh.
docker compose stop phpmyadmin
Code language: Nginx (nginx)
3. Chú ý
Để bảo đảm hoạt động ổn định, mình khuyến khích dùng cách 1, tự cập nhật compose.yml
để bổ sung dịch vụ khi cần.
Còn cách 2 hiện tại chưa bảo đảm sự ổn định, có thể gặp lỗi ngoài ý muốn. Ngoài ra, mình dự tính sẽ cập nhật thêm tính năng truy cập phpMyAdmin thông qua tên miền, ví dụ https://thuanbui.me/phpmyadmin
, kết hợp thêm yêu cầu đăng nhập username / password để tăng bảo mật. Sẽ không cần phải truy cập thông qua IP và port nữa.
KazeWP đã được cập nhật hỗ trợ phpMyAdmin, truy cập theo địa chỉ https://<domain>/pma/
Bạn nào quan tâm có thể bấm Star và Watch repo Kazewp để được cập nhật thông tin mới.
Star Watch
Em chào anh. Mong anh ra bài hướng dẫn triển khai kaze wp trên proxmox dùng ip động. Em build proxmox tại nhà ạ.
Nếu cài đặt ở nhà thì em chỉnh Port Forwarding port 80,443 trên router về địa chỉ IP của máy ảo cài LXC. Sau đó cài thêm cái này để tự dộng cập nhật IP cho tên miền: https://thuanbui.me/cau-hinh-dynamic-dns-qua-cloudflare-su-dung-docker-compose/
Hoặc có thể cấu hình trực tiếp lại Caddy theo hướng dẫn này để nó tự động cập nhật DNS: https://thuanbui.me/cau-hinh-dynamic-dns-va-wildcard-ssl-cho-caddy-server/
Mong anh hướng dẫn cài n8n trên proxmox. Hoặc n8n trên DSM cài trên proxmox. Chúc anh sức khoẻ và luôn mang đến kiến thức hữu ích cho mọi người
Đây em nhé: https://thuanbui.me/huong-dan-cai-dat-n8n-len-lxc-cua-proxmox/