Hei, apa kabar semuanya? Udah lama banget nih gak update postingan, maaf ya! Saya kembali lagi dan mau ngepost. Pada tutorial kali ini saya akan membahas cara menginstal PHP, MySQL, phpMyAdmin dan Nginx menggunakan Docker. Oke, sebelumnya kita bahas sedikit tentang Docker!
Docker adalah sebuah alat yang membantu pengembang untuk menjalankan aplikasi dengan mudah. Dengan Docker, pengembang dapat mengemas aplikasi dan segala yang dibutuhkan oleh aplikasi ke dalam sebuah kotak kecil yang disebut "kontainer". Kontainer ini dapat dijalankan di mana saja, seperti di komputer pengembang, di server, atau di cloud. Docker juga memastikan bahwa aplikasi di dalam kontainer berjalan terisolasi, tidak saling mengganggu, dan mudah diatur. Dengan Docker, pengembang dapat menghemat waktu dan mengurangi masalah saat menjalankan aplikasi di berbagai lingkungan.
Pada tutorial kali ini saya akan membahas installnya pada Docker Compose. Docker Compose adalah alat yang digunakan untuk menjalankan dan mengelola beberapa kontainer aplikasi dalam satu kali perintah. Dengan Docker Compose, kamu dapat mengatur konfigurasi kontainer menggunakan file sederhana, dan menjalankan semua kontainer dengan mudah menggunakan perintah "docker-compose up". Dan ini memudahkan pengembang untuk mengelola aplikasi multi-kontainer dengan cepat dan konsisten.
Tanpa basa-basi lagi, mari kita mulai!
Langkah-langkah:
version: '3.9'
services:
web:
image: nginx:latest
ports:
- '8081:80'
restart: always
volumes:
- ./src:/var/www/html
- ./default.conf:/etc/nginx/conf.d/default.conf
links:
- php-fpm
php-fpm:
build:
context: .
dockerfile: Dockerfile
restart: always
volumes:
- ./src:/var/www/html
mysql-db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- 3308:3306
phpmyadmin:
image: phpmyadmin:latest
restart: always
ports:
- 8082:80
environment:
- PMA_ARBITRARY=1
Penjelasan
Pada contoh konfigurasi Docker Compose di atas, terdapat beberapa layanan yang didefinisikan. Layanan "web" menggunakan Nginx, "php-fpm" menggunakan PHP-FPM, "mysql-db" menggunakan MySQL, dan "phpmyadmin" menggunakan PhpMyAdmin.
Layanan "web" akan berjalan di port 8081 pada komputer Kamu, dan akan melayani file-file situs web dari direktori "./src" di komputer Kamu. Layanan ini akan dijalankan ulang secara otomatis jika terjadi kesalahan.
Layanan "php-fpm" akan dibangun menggunakan Dockerfile yang ada dalam folder yang sama dengan file docker-compose.yml. Layanan ini akan menggunakan direktori "./src" sebagai tempat untuk menyimpan file-file PHP.
Layanan "mysql-db" akan menggunakan MySQL versi 5.7 dan akan berjalan di port 3308 pada komputer Kamu. Password root MySQL akan diatur sebagai "root". Layanan ini juga akan dijalankan ulang jika terjadi kesalahan.
Layanan "phpmyadmin" akan menggunakan PhpMyAdmin versi terbaru dan akan berjalan di port 8082 pada komputer Kamu. Ini akan memberikan antarmuka pengguna untuk mengelola database MySQL.
Simpan perubahan pada file docker-compose.yml
Buat direktori baru bernama src dalam direktori proyek kamu. Di dalam direktori src, kamu dapat menambahkan file PHP dan file statis lainnya yang ingin dijalankan.
Di dalam direktori utama, buat file bernama default.conf dengan isi konfigurasi sebagai berikut
server {
index index.php index.html;
server_name phpfpm.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
FROM php:8.0-fpm
WORKDIR /var/www/html
RUN docker-php-ext-install mysqli
Nah, di konfigurasi Dockerfile yang kita punya, kita pake image dasar "php:8.0-fpm" buat bikin image Docker. Terus, kita setel direktori kerjanya jadi "/var/www/html". Terakhir, kita juga pasang ekstensi mysqli dengan perintah "docker-php-ext-install mysqli" supaya bisa konek ke database MySQL pakai PHP.
Kembali ke terminal atau command prompt, pastikan kamu berada di direktori proyek, lalu jalankan perintah berikut:
docker-compose up -d
Perintah ini akan membangun dan menjalankan kontainer sesuai dengan konfigurasi yang ada pada file docker-compose.yml.<?php
phpinfo();
Selamat! Kamu telah berhasil menginstal PHP, MySQL, phpMyAdmin dan Nginx menggunakan Docker. Kamu sekarang dapat mulai mengembangkan dan menjalankan aplikasi web di dengan Docker. Pada posting selanjutnya kita akan coba membuat program sederhana dengan integrasi service antara PHP dan MySQL pada docker yang sudah kita buat.
Untuk script lengkapnya dapat di download pada
https://github.com/padhilahm/php-nginx-mysql-docker/
Comments (1)
Doni
7 months agomakasih bro
Reply Cancel