Cara Install WordPress dengan Docker Compose di Ubuntu Server

Cara Install WordPress dengan Docker Compose di Ubuntu Server

Pengantar

WordPress adalah salah satu CMS (Content Management System) paling populer di dunia yang digunakan untuk membuat website blog, company profile, hingga toko online. Biasanya WordPress diinstal langsung menggunakan web server seperti Apache atau Nginx dengan PHP dan MySQL secara manual.

Namun, seiring berkembangnya teknologi, kini kita bisa menginstal WordPress menggunakan Docker Compose di Ubuntu Server. Metode ini membuat proses instalasi menjadi lebih cepat, rapi, dan mudah dikelola.

Dengan Docker Compose, WordPress dan database (MySQL/MariaDB) dijalankan dalam container terpisah sehingga sistem lebih terorganisir dan minim konflik dependensi.

Artikel ini akan membahas langkah demi langkah cara install WordPress dengan Docker Compose di Ubuntu Server secara lengkap dan mudah dipahami

Alasan menginstall WordPress dengan Docker ?

Menggunakan Docker untuk WordPress memiliki banyak keuntungan, antara lain:

  • Instalasi lebih cepat tanpa perlu konfigurasi manual Apache, PHP, dan MySQL satu per satu.
  • Lingkungan server lebih konsisten (tidak tergantung versi PHP atau library di sistem).
  • Mudah dipindahkan ke server lain.
  • Mudah dihapus atau diulang instalasinya.
  • Cocok untuk testing, development, maupun production skala kecil-menengah.
  • Manajemen container lebih rapi dengan Docker Compose.

Persiapan Sebelum Instalasi

Sebelum mulai instalasi, pastikan kamu sudah menyiapkan:

  • Ubuntu Server 20.04 / 22.04 / 24.04
  • Akses root atau user dengan sudo
  • Koneksi internet stabil
  • Domain (opsional, jika ingin diakses lewat domain)
  • Port 80 dan 443 terbuka di firewall

Menginstall Docker

Langkah pertama adalah menginstall Docker di Ubuntu Server.

  1. Update sistem terlebih dahulu:
    sudo apt update
  2. Install paket pendukung:
    sudo apt install -y ca-certificates curl gnupg lsb-release
  3. Install Docker
    sudo curl -fsSL https://get.docker.com | sh
  4. Jalankan dan aktifkan Docker saat boot:
    • Gunakan Perintah berikut:
      sudo systemctl start docker
      sudo systemctl enable docker
    • Kemudian Cek apakah docker sudah aktif :
      sudo systemctl status docker
  5. Cek versi Docker:
    docker --version
  6. Agar tidak perlu selalu menggunakan sudo:
    sudo usermod -aG docker $USER
    Logout lalu login kembali agar perubahan aktif.

Konfigurasi Docker Compose

Langkah-langkah untuk menginstall Docker Compose dan menyiapkan project WordPress:

  1. Install Docker Compose:
    sudo apt install -y docker-compose
  2. Cek versi Docker Compose:
    docker-compose --version
  3. Buat folder project WordPress:
    mkdir wordpress-docker
    cd wordpress-docker

Instalasi WordPress dengan Docker

Langkah-langkah untuk membuat file `docker-compose.yml` dan menjalankan container:

  1. Buat file `docker-compose.yml`:
    nano docker-compose.yml
  2. Isi dengan konfigurasi berikut:
    version: "3.8"
    
    services:
      db:
        container_name: wordpress_db
        image: mariadb:10.11
        restart: always
        command: --default-authentication-plugin=mysql_native_password
        environment:
          MYSQL_ROOT_PASSWORD: root12345
          MYSQL_DATABASE: wordpress_db
          MYSQL_USER: wordpressuser
          MYSQL_PASSWORD: wp12345
        volumes:
          - db_data:/var/lib/mysql
        networks:
          - wp_network
    
      wordpress:
        container_name: wordpress_app
        image: wordpress:fpm
        depends_on:
          - db
        restart: always
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_USER: wordpressuser
          WORDPRESS_DB_PASSWORD: wp12345
          WORDPRESS_DB_NAME: wordpress_db
        volumes:
          - wp_data:/var/www/html
          - ./php.ini:/usr/local/etc/php/conf.d/custom.ini
        networks:
          - wp_network
    
      nginx:
        container_name: wordpress_webserver
        image: nginx:latest
        depends_on:
          - wordpress
        restart: always
        ports:
          - "8080:80"
        volumes:
          - ./nginx.conf:/etc/nginx/conf.d/default.conf
          - wp_data:/var/www/html
        networks:
          - wp_network
    
    volumes:
      db_data:
      wp_data:
    
    networks:
      wp_network:
  3. Membuat File nginx.conf
    • Gunakan perintah berikut 
      nano nginx.conf
    • Isi dengan konfigurasi berikut:
      server {
          listen 80;
          server_name _;
      
          root /var/www/html;
          index index.php index.html;
      
          client_max_body_size 64M;
      
          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 ~ /\. {
              deny all;
          }
      }
  4. Membuat File php.ini
    • Gunakan perintah berikut 
      nano php.ini
    • isi dengan 
      upload_max_filesize = 64M
      post_max_size = 64M
      memory_limit = 128M
  5. Simpan file lalu jalankan container:
    docker-compose up -d
  6. Cek apakah container berjalan:
    docker ps

    Output:

    CONTAINER ID   IMAGE           COMMAND                  CREATED             STATUS             PORTS                                     NAMES
    5179596c4a08   nginx:latest    "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   wordpress_webserver
    0a0ea3abb92d   wordpress:fpm   "docker-entrypoint.s…"   About an hour ago   Up About an hour   9000/tcp                                  wordpress_app
    c22ad6dc98d5   mariadb:10.11   "docker-entrypoint.s…"   About an hour ago   Up About an hour   3306/tcp                                  wordpress_db
    Jika berhasil, WordPress sudah aktif di port 80.

Instalasi WordPress di Browser

Langkah-langkah untuk menyelesaikan instalasi WordPress:

  1. Buka browser dan akses:
    http://IP_SERVER:8080
  2. Pilih bahasa,Kemudian klik Continue

  3. Langkah instalasi WordPress
    :
    • Masukkan:
      • Site Title
      • Username admin
      • Password
      • Email
    • Klik Install WordPress

  4. Login ke dashboard WordPress




  5. WordPress sudah siap digunakan.


Menghubungkan Domain dan Konfigurasi Nginx Reverse Proxy

Jika ingin menggunakan domain:

  1. Arahkan DNS domain ke IP server
  2. Buat A record:
    Name: @
    Value: IP_SERVER
  3. Atau subdomain:
    blog.domain.com → IP_SERVER
  4. Tunggu propagasi DNS (5–30 menit biasanya)
  5. Setelah itu, WordPress bisa diakses melalui:
    http://domainkamu.com
  6. Cek propagasi DNS bisa menggunakan:
    • Perintah ping pada terminal untuk mengecek koneksi ke domain:
      ping domainkamu.com
      Catatan : Pastikan setelah di ping IP mengarah ke IP VPS 
  7. Install Nginx di host sebagai reverse proxy:
    sudo apt install nginx -y
  8. Buat file konfigurasi:
    sudo nano /etc/nginx/conf.d/wordpress.conf
  9. Isi:
    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-Proto $scheme;
        }
    }
  10. Cek dan restart Nginx:
    sudo nginx -t
    sudo systemctl restart nginx

Instalasi dan Konfigurasi SSL

Agar website aman, gunakan SSL (HTTPS). Cara termudah menggunakan Certbot.

  1. Install Certbot:
    sudo apt install -y certbot python3-certbot-nginx
  2. Gunakan Certbot untuk menginstall SSL:
    sudo certbot --nginx --agree-tos --redirect -d namadomain.com
    Ikuti instruksi hingga SSL terpasang.
  3. Agar SSL otomatis diperpanjang, jalankan perintah berikut:
    sudo systemctl enable certbot.timer
  4. Pastikan WordPress URL di Settings sudah menggunakan:
    https://domainkamu.com
    Output :


Penutup

Dengan menggunakan Docker Compose, instalasi WordPress di Ubuntu Server menjadi lebih mudah, cepat, dan terstruktur tanpa perlu menginstal Apache, PHP, dan MySQL secara manual, karena semua komponen dijalankan dalam container terpisah. Tutorial ini mencakup cara menginstal Docker dan Docker Compose, membuat konfigurasi untuk WordPress, MariaDB, dan Nginx, serta menghubungkan WordPress ke domain menggunakan Nginx Reverse Proxy dan mengamankan website dengan SSL dari Let’s Encrypt (Certbot). Metode ini sangat cocok untuk berbagai kebutuhan, mulai dari website pribadi, blog, company profile, project testing, hingga production skala kecil dan menengah. Keuntungan utama penggunaan Docker adalah kemudahan dalam maintenance, backup, dan migrasi server tanpa memerlukan konfigurasi ulang.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466