Cara Install 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 user
atau akses keroot user
. Kami merekomendasikan bertindak sebagainon-root sudo user
bagaimanapun, 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:
Selain itu, Anda dapat mengakses phpMyAdmin melalui URL https://phpmyadmin.your-domain.com
.
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