Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22

Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22

Giới thiệu

Ở bài viết này chúng ta sẽ tiến hành tạo một website WordPress thông qua Docker Compose, Nginx, MariaDB trên Ubuntu 22.04. Về phần Docker mình sẽ sử dụng Portainer để quản lý container.

Cài đặt Docker và Portainer

Cài đặt Docker trên Ubuntu

sudo apt update
sudo apt upgrade
sudo apt install docker.io -y

Tự động bật Docker khi máy chủ khởi động

sudo -i
systemctl start docker
systemctl enable docker

Cài đặt Portainer

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
docker ps

Truy cập Portainer

Sau khi cài đặt xong, bạn hãy lên web và truy cập vào http://localhost:9000 để vào giao diện của Portainer

image - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 19

Vào lần truy cập đầu tiên, bạn sẽ được hỏi để tạo mật khẩu truy cập Portainer.

Vì mình quản lý từ local nên mình sẽ chọn Local ở bước tiếp theo

02 connect local - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 20

Cài đặt WordPress

Cài đặt Nginx

Bạn vào mục Container và tạo một container cho nginx như sau

image 1 - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 21
+ Name: nginx (Tùy ý bạn chọn để đặt tên cho container)
+ Image: nginx
+ Manual network port publishing:
Chọn port truy cập cho nginx, mặc định ở phần container phải là 80, và host là port bạn truy cập đến nginx
Hoặc bật Publish all exposed network ports to random host ports để tự động chọn port ngẫu nhiên 

Ở đây mình chọn 80:80

Chọn Deploy Container để tiếp tục

Tiếp theo thử truy cập localhost:(cổng bạn chọn) để kiểm tra xem nginx đã hoạt động chưa?

welcome to nginx window 5x3 2 - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 22

Cài đặt MariaDB

Tiếp tục tạo Container cho MariaDB như sau

image 2 - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 23
+ Name: mariadb (Tùy ý bạn chọn để đặt tên cho container)
+ Image: mariadb 
+ Manual network port publishing:
Chọn port truy cập cho mariadb , mặc định ở phần mariadb phải là 3306, và host là port bạn truy cập đến nginx
Hoặc bật Publish all exposed network ports to random host ports để tự động chọn port ngẫu nhiên 

Ở đây mình chọn 4166:3306

Chọn Deploy Container để tiếp tục

Sau đó truy cập vào Console và tạo database cho wordpress

mysql -u root -p
create database wordpress;

Cài đặt WordPress

Tạo container wordpress như sau

image 3 - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 24
+ Name: wordpress (Tùy ý bạn chọn để đặt tên cho container)
+ Image: wordpress 
+ Manual network port publishing:
Chọn port truy cập cho wordpress, mặc định ở phần container phải là 80, và host là port bạn truy cập đến wordpress
Hoặc bật Publish all exposed network ports to random host ports để tự động chọn port ngẫu nhiên 

Ở đây mình chọn 4167:80

Chọn Deploy Container để tiếp tục

Cấu hình Nginx

Truy cập vào Console nginx và gõ lệnh sau

apt -y update
apt -y install nano
nano /etc/nginx/conf.d/wordpress.conf

Bạn tạo config file theo mẫu sau với ip, port theo bạn tạo

server {
    listen       80;
    server_name  wordpress.quochung.cyou; 

location / {
    proxy_pass       http://ip:4167;
    proxy_redirect             off;
    proxy_set_header Upgrade   $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Như vậy mình đã trỏ subdomain wordpress.quochung.cyou về IP của nginx trên cổng http 80. Sau đó nginx sẽ chuyển đến http://ip:4167 (Trang của wordpress)

Bạn save file và gõ

nginx -t

Để kiểm tra xem config đã đúng chưa

Sau khi xong khởi động lại container nginx, truy cập tên miền đã tạo để kiểm tra kết quả

WordPress setup wizard - quochung.cyou PTIT
Cài đặt WordPress với Docker, Nginx, MariaDB trên Ubuntu 22 25

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply