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

SPACE IKLAN DISEWAKAN

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 :

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

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.

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

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

SPACE IKLAN DISEWAKAN
Server Admin

Leave a Reply

Your email address will not be published. Required fields are marked *


You might also like