Cara Install WordPress dengan Docker – Salah satu cara yang cukup mudah untuk menginstal wordpress adalah dengan menggunakan docker. Docker sendiri adalah platform yang digunakan untuk membuat dan menjalankan sebuah aplikasi menjadi sebuah container. Jadi pada tutorial kali ini kita akan menginstal wordpress dengan docker, dan menjalankanya sebagai kontainer.
Alasana utamanya adalah mudah dalam pengelolaan. Selain itu, wordpress yang diinstall dengan docker juga meningkatkan keamanan karena setiap komponen terisolasi dan dibatasi akses antar kontainer, sehingga jika satu kontainer bermasalah, dampaknya tidak menyebar ke komponen lain.
WordPress is a free and open source blogging tool and a content management system (CMS) based on PHP and MySQL, which runs on a web hosting service. Features include a plugin architecture and a template system.
Sebelum memulai instalasi, ada beberapa persyaratan yang perlu dipenuhi. Seperti VPS yang memenuhi minimum requirement. Berikut adalah persyaratan lengkap yang perlu dipersiapkan sebelum melanjutkan ke tahap langkah-langkah instalasi.
Spesifikasi VPS
Baca Juga : Cara Install WordPress di Ubuntu 24.04 dengan Nginx
Berikut adalah gambaran proses yang akan kita lakukan untuk menginstal wordpress dengan docker di Ubuntu Server 22.04 atau 24.04.
docker-compose.yml
, nginx.conf, dan php.ini
WordPress berjalan menggunakan Docker, sehingga kita perlu menginstal Docker terlebih dahulu di VPS atau server yang digunakan. Langkah ini hanya diperlukan jika Docker belum terinstal pada sistem Anda.
sudo apt-get update && \
sudo apt-get install -y ca-certificates curl && \
sudo install -m 0755 -d /etc/apt/keyrings && \
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc
Tambahkan repository untuk apt source.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 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
Instal docker versi terbaru dengan perintah ini.
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Terakhir periksa versi docker untuk memastikan docker sudah berhasil diinstal.
docker --version
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 :
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
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
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:
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;
}
}
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
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.
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.
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.
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 NamaDomain.com;
location / {
proxy_pass http://127.0.0.1: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-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
IP-PUBLIK-VPS
dengan IP Publik VPS !!!Setelah itu cek konfigurasi nginx dan restart service nginx.
sudo nginx -t
sudo systemctl restart nginx
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.
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.