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 pada tutorial kali ini kita akan menjalankan wordpress sebagai container. Dan akan dijalankan di atas docker compose.
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
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
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
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 :
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 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;
}
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.
Baca Juga : Cara Install WordPress di Debian 11