• Banjarbaru, Kalimantan Selatan
xYZm8MLKNAaFynHSwXVffnyuO36xg4t066J6eNGH.png
1 year ago

Tutorial Install PHP, MySQL, phpMyAdmin, dan Nginx pada Docker

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:                                

  1. Pastikan Docker sudah terinstal di sistem Kamu. Jika belum, kamu dapat mengunduh dan menginstalnya dari situs resmi Docker. https://www.docker.com/products/docker-desktop/
  2. Buat direktori baru untuk proyek kamu dan pindah ke direktori tersebut melalui terminal atau command prompt.
  3. Buat file bernama docker-compose.yml dalam direktori tersebut dan buka file tersebut dengan editor teks favorit kamu.
  4. Salin kode berikut ke dalam file docker-compose.yml:
    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.

  5. Simpan perubahan pada file docker-compose.yml

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

  7. 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;
        }
    }
  8. Selanjutnya dalam direktori utama, buat file dengan nama Dockerfile. File ini berisi perintah mengatur konfigurasi PHP
    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.

  9. 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.zscJlpovJFkbV82723hCQRhrmFatmg0NdaSQ1d6M.png
  10. Setelah selesai, kamu dapat mengakses aplikasi PHP melalui browser dengan mengunjungi http://localhost:8081 . Sebagai percobaan kita buat file index.php pada direktori src dengan code sebagai berikut:
    <?php
    phpinfo();
    
    btM9LsgLEgn9o2iIBQbLF8csgRJ0Z4GP1MavKb5T.png
  11. Untuk mengakses phpMyAdmin kamu dapat mengunjungi http://localhost:8082/ dengan memasukkan server mysql-db , nama pengguna root , dan kata sandi root sesuai konfigurasi kita sebelumnya pada docker-compose.yaml 

yXddoFBhE7e6GBCakPx0IEYcYpmgZXT6qvANdjFH.png

x3G5Z51aNjOLWvWcvwMMcsV7DcU7V1wsGSpTOsbM.png

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)

client

Doni

3 weeks ago

makasih bro

Reply

Leave a Reply