Cara Install WordPress di Docker Compose | Nginx dan PHP-FPM
Cara Install WordPress di Docker – Salah satu cara menginstall wordpress yang cukup mudah adalah dengan menggunakan docker. Docker sendiri adalah platform yang digunakan untuk membuat dan menjalankan sebuah aplikasi menjadi sebuah container.
Jadi kita akan menjadikan wordpress menjadi sebuah container aplikasi dan menjalankanya di sistem operasi ubuntu 20.04 atau 22.04. Berikut caranya.
Baca Juga : Cara Install WordPress di Ubuntu
Note : Bagi Anda yang sudah menginstall docker di server, silahkan langsung menuju langkah ke-2.
Langkah #1 : Menginstall Docker
Docker yang akan kita install ini meliputi docker engine, docker cli, dan docker compose. Pertama masukkan perintah-perintah berikut untuk mulai menginstall.
sudo apt-get update \
&& sudo apt-get install -y ca-certificates curl gnupg \
&& sudo install -m 0755 -d /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
&& sudo chmod a+r /etc/apt/keyrings/docker.gpg
Tambahkan repository docker
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Kemudian install docker engine, docker cli, dan docker compose
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Buat agar docker otomatis berjalan setelah booting, dan masukkan user anda ke dalam group docker.
sudo systemctl start docker.service
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo usermod -aG docker $USER
Terakhir logout dari user sekarang dan login lagi untuk membuat perubahan di user Anda. Kemudian untuk menguji docker sudah terinstall dengan baik, bisa menggunakan perintah ini :
Langkah #2 : Membuat Konfigurasi Docker Compose
Untuk menginstall wordpress dengan docker, Anda perlu membuat file konfigurasi docker-compose.yaml. Anda juga perlu membuat konfigurasi nginx.conf (karena kita menggunakan Nginx) dan juga membuat file konfigurasi php.ini. Untuk membuat ketiga file konfigurasi tersebut, Anda bisa mengikuti langkah-langkah berikut :
Membuat Folder Instalasi WordPress
Buat folder tempat menyimpan ketiga file di atas, kemudian masuk ke folder tersebut. Nantinya semua konfigurasi dan log akan disimpan di folder ini.
cd ~
mkdir wordpress-docker
cd wordpress-docker
Membuat File Konfigurasi Docker Compose
Setelah itu, buat file docker-compose.yaml. File ini berisi perintah-perintah untuk menginstall wordpress dan service pendukung lainya seperti mariadb dan nginx webserver.
nano docker-compose.yaml
Kemudian masukkan konfigurasi berikut :
version: "3.8"
services:
db:
container_name: wordpress_db
image: mariadb:latest
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress_pasdw
MYSQL_DATABASE: wordpress_db
MYSQL_USER: wordpressuser
MYSQL_PASSWORD: your_password
networks:
- network
wordpress:
depends_on:
- db
container_name: wordpress_app
image: wordpress:fpm
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: your_password
WORDPRESS_DB_NAME: wordpress_db
volumes:
- wp_data:/var/www/html
- ./php.ini:/usr/local/etc/php/conf.d/custom.ini
networks:
- network
nginx:
container_name: wordpress_webserver
image: nginx:latest
restart: always
ports:
- "8080:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- wp_data:/var/www/html
depends_on:
- wordpress
networks:
- network
volumes:
db_data:
wp_data:
networks:
network:
Membuat File Nginx.conf
File nginx.conf adalah file yang berisi konfigurasi nginx server block untuk menjalankan wordpress. Nginx server block yang akan dibuat kali ini khusus digunakan untuk menjalankan wordpress yang menggunakan php-fpm sebagai handlernya. Masukkkan perintah berikut untuk mulai membuat file :
nano nginx.conf
Lalu masukkan baris perintah berikut :
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html;
client_max_body_size 5M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ /\. {
deny all;
}
location ~ ~$ {
deny all;
}
location ~ \.user\.ini$ {
deny all;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Membuat File php.ini
File php.ini digunakan untuk mengatur konfigurasi php, seperti maksimal upload, memory limit, dll. Berikut perintah untuk membuatnya :
nano php.ini
Masukkan baris perintah berikut :
# php.ini
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 128M
Langkah #3 : Mulai Instalasi WordPress dengan Docker
Untuk memulai instalasi, jalankan perintah berikut dan otomatis docker akan menginstalkan wordpress sesuai konfigurasi yang telah dibuat di atas.
docker compose up -d
Setelah perintah di atas dijalankan, docker akan otomatis membuatkan volume, network, dan mendownloadkan image : mariadb, wordpress-fpm, nginx. Kemudian menjalankanya sebagai container.
Langkah #4 : Instalasi WordPress di Browser
Setelah semua konfigurasi di atas dilakukan dengan benar. Selanjutnya cek instalasi wordpress dengan search di browser http://<ip-publik:8080>. Ingat menggunakan port 8080 karena di docker-compose.yaml kita menyettingya tadi.
Langkah #5 : Menghubungkan ke Domain
Setelah proses instalasi selesai, langkah berikutnya yang tidak kalah penting adalah menghubungkan wordpress dokcer tadi ke domain. Penting diingat pertama Anda harus mempointing dulu domain atau subdomain Anda ke IP Publik VPS. Jika Anda menggunakan cloudflare sebagai Domain manajemen, berikut adalah contoh cara pointingnya.
Mengatur Nginx Reverse Proxy
Setelah domain berhasil di pointing ke IP VPS, selanjutnya kita akan membuat nginx reverse proxy agar wordpress yang sudah kita install tadi bisa diakses menggunakan domain.
sudo apt install nginx -y
sudo rm -rf /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/conf.d/wordpress.conf
Masukkan baris perintah berikut :
server {
listen 80;
server_name chikara.awanservers.com;
location / {
proxy_pass http://IP-PUBLIK-VPS:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
client_max_body_size 20M;
}
- NOTES : Pastikan Anda mengganti IP-PUBLIK-VPS dengan IP Publik Server Anda !!!
Setelah itu cek konfigurasi nginx dan restart service nginx.
sudo nginx -t
sudo systemctl restart nginx
Mengatur SSL
SSL yang akan digunakan adalah Lets Encrypt dan menggunakan certbot untuk proses instalasinya. Untuk menginstall SSL, Pertama adalah menginstall paket certbot dan python certbot nginx.
sudo apt install -y certbot python3-certbot-nginx
Kemudian jalankan perintah ini untuk mulai menginstal SSL.
sudo certbot --nginx --agree-tos --redirect --email [email protected] -d chikara.awanservers.com
Pastikan proses request SSL berhasil seperti ini.
Dan silahkan buka lagi web Anda menggunakan domain, Sekarang website sudah menggunakan HTTPS dan bersertifikat SSL.
Penutup
Jadi beutulah Cara Install WordPress di Docker, dan proses instalasinya sudah selesai. Pada tutorial di atas, kita menginstall wordpress-fpm menggunakan docker, selain itu kita juga menginstall mariadb sebagai databsenya dan nginx sebagai web servernya. Kemudian kita juga menggunakan nginx reverse proxy agar web wordpress kita bisa diakses menggunakan domain. Untuk domain manajemenya sendiri menggunakan cloudflare, biar proses propagasi domainya menjadi cepat.
Baca Juga : Cara Install WordPress di Debian 11