Cara Install WordPress dengan Docker Compose

Cara Install WordPress dengan Docker Compose

Instal WordPress dengan Docker Compose

Dalam tutorial ini, kami akan menunjukkan cara menginstal WordPress dengan Docker Compose di Ubuntu. Bagi Anda yang belum tahu, WordPress adalah sistem manajemen konten (CMS) sumber terbuka populer yang digunakan untuk membuat dan mengelola situs web. Salah satu cara untuk menginstal WordPress adalah dengan menggunakan Docker Compose, yang merupakan alat untuk mendefinisikan dan menjalankan aplikasi Docker multi-container.

Artikel ini mengasumsikan Anda memiliki setidaknya pengetahuan dasar tentang Linux, tahu cara menggunakan shell, dan yang terpenting, Anda menghosting situs Anda di VPS Anda sendiri. Pemasangannya cukup sederhana dan menganggap Anda menjalankan akun root, jika tidak, Anda mungkin perlu menambahkan ‘sudo‘ ke perintah untuk mendapatkan hak akses root. Saya akan menunjukkan kepada Anda instalasi langkah demi langkah WordPress dengan Docker Compose. Anda dapat mengikuti instruksi yang sama untuk Ubuntu 22.04 dan distribusi berbasis Debian lainnya seperti Linux Mint, Elementary OS, Pop!_OS, dan masih banyak lagi.

Prasyarat

  • Server yang menjalankan salah satu sistem operasi berikut: Ubuntu 22.04, 20.04, dan distribusi berbasis Debian lainnya seperti Linux Mint.
  • Sebaiknya gunakan penginstalan OS baru untuk mencegah potensi masalah.
  • Akses SSH ke server (atau cukup buka Terminal jika Anda menggunakan desktop).
  • Koneksi internet aktif. Anda memerlukan koneksi internet untuk mengunduh paket dan dependensi yang diperlukan untuk Docker.
  • SEBUAH non-root sudo useratau akses ke root user. Kami merekomendasikan bertindak sebagai non-root sudo userbagaimanapun, karena Anda dapat membahayakan sistem Anda jika Anda tidak berhati-hati saat bertindak sebagai root.

Instal WordPress dengan Docker Compose

Langkah 1. Pertama, pastikan semua paket sistem Anda mutakhir dengan menjalankan yang berikut ini apt perintah di terminal.

sudo apt update
sudo apt upgrade

Langkah 2. Memasang Docker.

Secara default, Docker tidak tersedia di repositori dasar Ubuntu 22.04. Sekarang jalankan perintah berikut di bawah ini untuk menambahkan repositori Docker ke sistem:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

Selanjutnya, impor kunci GPG ke sistem Anda:

curl -fsSL /gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Setelah repositori diaktifkan, sekarang instal versi terbaru dari paket Docker menggunakan perintah di bawah ini:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Anda dapat memverifikasi bahwa Docker diinstal dan tentang versi saat ini:

docker -v

Setelah berhasil diinstal, aktifkan Docker (untuk memulai secara otomatis saat boot sistem), mulai, dan verifikasi status menggunakan perintah di bawah ini:

sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker

Secara default, Docker membutuhkan hak akses root. Jika Anda ingin menghindari menggunakan sudo setiap kali Anda menjalankan docker perintah, tambahkan nama pengguna Anda ke docker kelompok:

sudo usermod -aG docker $(whoami)
su - ${USER}

Konfirmasikan bahwa pengguna Anda ditambahkan ke grup Docker:

groups

Untuk sumber daya tambahan tentang menginstal dan mengelola Docker, baca postingan di bawah ini:

Langkah 3. Buat File Tulis Docker untuk WordPress.

Pertama, buat direktori untuk konfigurasi WordPress:

mkdir wordpress
cd wordpress

Selanjutnya, buat dan buka file penulisan Docker menggunakan editor teks favorit Anda:

nano docker-compose.yml

Tambahkan file berikut:

version: '3.9'

services:
  wp:
    image: wordpress:latest
    container_name: wordpress-app
    restart: unless-stopped
    expose:
      - 8080
    volumes:
      - ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
      - ./wp-app:/var/www/html
      #- ./plugin-name/trunk/:/var/www/html/wp-content/plugins/plugin-name # Plugin development
      #- ./theme-name/trunk/:/var/www/html/wp-content/themes/theme-name # Theme development
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: "${DB_NAME}"
      WORDPRESS_DB_USER: "${DB_USER_NAME}"
      WORDPRESS_DB_PASSWORD: "${DB_USER_PASSWORD}"
      VIRTUAL_HOST: your-domain.com
      LETSENCRYPT_HOST: your-domain.com
    depends_on:
      - db
    links:
      - db

  wpcli:
    image: wordpress:cli
    container_name: wpcli_app
    volumes:
      - ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
      - ./wp-app:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: "${DB_NAME}"
      WORDPRESS_DB_USER: "${DB_USER_NAME}"
      WORDPRESS_DB_PASSWORD: "${DB_USER_PASSWORD}"
    depends_on:
      - db
      - wp

  pma:
    image: phpmyadmin/phpmyadmin
    container_name: pma
    restart: unless-stopped
    environment:
      # 
      PMA_HOST: db
      PMA_PORT: 3306
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
      UPLOAD_LIMIT: 50M
      VIRTUAL_HOST: phpmyadmin.your-domain.com
      LETSENCRYPT_HOST: phpmyadmin.your-domain.com
    expose:
      - 8081
    links:
      - db:db

  db:
    image: mysql:latest
    container_name: wordpressdb
    restart: unless-stopped
    command: [
        '--default_authentication_plugin=mysql_native_password',
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_unicode_ci'
    ]
    volumes:
      - ./wp-data:/docker-entrypoint-initdb.d
      - db_data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: "${DB_NAME}"
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
      MYSQL_USER: "${DB_USER_NAME}"
      MYSQL_PASSWORD: "${DB_USER_PASSWORD}"

volumes:
  db_data:

Simpan dan tutup file, lalu buat file lingkungan untuk variabel yang digunakan dalam file penulisan:

sudo nano .env

Tambahkan file berikut:

DB_NAME=wordpress
DB_USER_NAME=username
DB_USER_PASSWORD=userpassword
DB_ROOT_PASSWORD=your-strong-password

Simpan dan tutup file, lalu buat folder untuk konfigurasi PHP:

mkdir config

Sekarang kita membuat dan membuka php.conf.ini berkas untuk diedit:

nano config/php.conf.ini

Tambahkan file berikut:

file_uploads = On
memory_limit = 512M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 400

Langkah 4. Konfigurasi Docker Compose untuk Nginx.

Pertama, kami membuat direktori untuk konfigurasi Nginx:

mkdir nginx

Selanjutnya, buat direktori untuk Virtual host di dalam direktori tersebut:

mkdir nginx/vhost

Setelah itu, buat dan buka nginx/vhost/wordpress.your-domain.com untuk mengedit.

nano nginx/vhost/wordpress.your-domain.com

Rekatkan file berikut:

server_tokens off;
client_max_body_size 30m;

Simpan dan tutup file.

Lakukan hal yang sama untuk nginx/vhost/phpmyadmin.example.com mengajukan.

nano nginx/vhost/phpmyadmin.your-domain.com

Tambahkan kode berikut:

server_tokens off;
client_max_body_size 50m;

Simpan dan tutup file, lalu buka lagi file docker-compose:

nano docker-compose.yml

Paste kode berikut sebelum volumes: db_data: garis.

nginx:
    container_name: nginx
    image: nginxproxy/nginx-proxy
    restart: unless-stopped
    ports:
        - 80:80
        - 443:443
    volumes:
        - /var/run/docker.sock:/tmp/docker.sock:ro
        - ./nginx/html:/usr/share/nginx/html
        - ./nginx/certs:/etc/nginx/certs
        - ./nginx/vhost:/etc/nginx/vhost.d
    logging:
        options:
            max-size: "10m"
            max-file: "3"

Langkah 5. Konfigurasi Docker Compose untuk SSL.

Sekarang kita membuka file docker-compose menggunakan perintah berikut:

nano docker-compose.yml

Tambahkan kode berikut sebelum volumes: db_data: garis:

acme-companion:
    container_name: acme-companion
    image: nginxproxy/acme-companion
    restart: unless-stopped
    volumes_from:
        - nginx
    volumes:
        - /var/run/docker.sock:/var/run/docker.sock
        - ./nginx/acme:/etc/acme.sh
    environment:
        DEFAULT_EMAIL: admin@your-domain.com

Langkah 7. Konfigurasikan Firewall.

Sekarang kami menyiapkan Uncomplicated Firewall (UFW) dengan WordPress untuk mengizinkan akses publik pada port web default 80:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Langkah 8. Memasang WordPress.

Setelah semua file konfigurasi kami selesai, saatnya untuk memulai dan meluncurkan wadah:

docker compose up -d

Keluaran:

$ docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
r1e8agdt169d   nginxproxy/acme-companion   "/bin/bash /app/entr…"   12 seconds ago   Up 8 seconds                                                                               acme-companion
9m3ilk8ff790   wordpress:latest            "docker-entrypoint.s…"   12 seconds ago   Up 8 seconds    80/tcp, 8080/tcp                                                           wordpress-app
1f9c777g9dta   phpmyadmin/phpmyadmin       "/docker-entrypoint.…"   12 seconds ago   Up 8 seconds    80/tcp, 8081/tcp                                                           pma
1bmwil07an42   nginxproxy/nginx-proxy      "/app/docker-entrypo…"   12 seconds ago   Up 10 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx
t0dh64a2f4a3   mysql:latest                "docker-entrypoint.s…"   12 seconds ago   Up 10 seconds   3306/tcp, 33060/tcp                                                        wordpressdb

Sekarang buka browser web Anda dan akses UI Web WordPress menggunakan URL https://your-domain.com. Anda akan dialihkan ke halaman berikut:

Instal WordPress dengan Docker Compose

Selain itu, Anda dapat mengakses phpMyAdmin melalui URL https://phpmyadmin.your-domain.com.

Instal WordPress dengan Docker Compose
halaman masuk phpMyAdmin

Selamat! Anda telah berhasil menginstal WordPress. Terima kasih telah menggunakan tutorial ini untuk menginstal WordPress dengan Docker Compose di sistem Ubuntu. Untuk bantuan tambahan atau informasi berguna, kami sarankan Anda memeriksa situs web resmi Docker.

VPS Mengelola Penawaran Layanan

Jika Anda tidak punya waktu untuk melakukan semua hal ini, atau jika ini bukan bidang keahlian Anda, kami menawarkan layanan untuk melakukan “VPS Manage Service Offer”, mulai dari $10 (pembayaran Paypal). Silahkan hubungi kami untuk mendapatkan penawaran terbaik!
Tag: WordPress

Admin Tamvan, disegala Arah dan Cuaca..

You might also like