Cara Install WordPress di Docker Compose | Nginx dan PHP-FPM

Kenapa Kita Menginstall WordPress dengan Docker ?

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.

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
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 :

Docker Info - www.awanservers.com
Docker Info – www.awanservers.com

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
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.

Docker Compose Up - www.awanservers.com
Docker Compose Up – www.awanservers.com

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.

Install WordPress - www.awanservers.com
Install WordPress – www.awanservers.com

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 mengganti IP-PUBLIK-VPS dengan IP Publik VPS !!!

Setelah itu cek konfigurasi nginx dan restart service nginx.

sudo nginx -t
sudo systemctl restart nginx

Menginstall 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.

SSL – www.awanservers.com

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

Suka Menulis

You might also like
Panduan Lengkap Cara Migrasi WordPress dari VPS ke VPS Baru

Panduan Lengkap Cara Migrasi WordPress dari VPS ke VPS Baru

Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)

Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)

Cara Install WordPress di Ubuntu 22.04 dengan Apache, Mariadb, PHP8.2 (LAMP)

Cara Install WordPress di Ubuntu 22.04 dengan Apache, Mariadb, PHP8.2 (LAMP)

Cara Install WordPress dengan NGINX dan PHP-FPM di Ubuntu 20.04

Cara Install WordPress dengan NGINX dan PHP-FPM di Ubuntu 20.04

Cara Install Uptime Kuma dengan Docker Compose

Cara Install Uptime Kuma dengan Docker Compose

Cara Install Docker di Ubuntu 22.04 | Docker dan Cara Kerja Docker

Cara Install Docker di Ubuntu 22.04 | Docker dan Cara Kerja Docker