Rumah > pembangunan bahagian belakang > tutorial php > Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

王林
Lepaskan: 2023-10-12 11:50:02
asal
1293 orang telah melayarinya

使用Docker Compose、Nginx和MariaDB构建可伸缩的PHP应用程序架构

Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Pengenalan:
Dengan pembangunan teknologi pengkomputeran awan dan virtualisasi, menggunakan bekas untuk membina dan mengurus aplikasi telah menjadi penyelesaian arus perdana hari ini. Dalam penggunaan aplikasi tradisional, mengkonfigurasi dan mengurus persekitaran aplikasi selalunya membosankan dan terdedah kepada ralat. Penggunaan teknologi kontena boleh membungkus aplikasi dan persekitaran yang bergantung kepada mereka, sekali gus memudahkan proses penggunaan dan pengurusan aplikasi.

Artikel ini akan memperkenalkan cara menggunakan tiga alatan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala dan menyediakan contoh kod khusus. Saya berharap melalui pengenalan artikel ini, pembaca dapat memahami cara menggunakan alat ini untuk membina persekitaran aplikasi yang stabil dan berskala.

1. Konsep asas Docker Compose
Docker Compose ialah alat untuk mentakrif dan mengurus aplikasi Docker berbilang bekas. Melalui fail yaml yang berasingan, kami boleh menentukan pelbagai komponen aplikasi, termasuk imej bekas, pembolehubah persekitaran, konfigurasi rangkaian, dsb.

Berikut ialah contoh fail Karang Docker asas:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/usr/share/nginx/html
    links:
      - php
  php:
    image: php:fpm
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
Salin selepas log masuk

Dalam contoh di atas, kami telah mentakrifkan tiga perkhidmatan: web, php dan db. Perkhidmatan web menggunakan imej Nginx terkini dan mendedahkan port kontena 80, memetakan port luaran 80 ke port kontena 80. Pada masa yang sama, kami juga melekapkan direktori ./app ke direktori /usr/share/nginx/html bekas, supaya fail pada hos dan fail dalam bekas boleh disegerakkan. Perkhidmatan php menggunakan imej PHP-FPM rasmi dan melekapkan direktori ./app ke direktori /var/www/html bekas. Perkhidmatan db menggunakan imej MariaDB terkini dan menetapkan beberapa pembolehubah persekitaran untuk mengkonfigurasi pangkalan data.

2. Integrasi Nginx dan PHP
Dalam seni bina aplikasi berasaskan Docker, Nginx biasanya digunakan sebagai pelayan proksi terbalik, memajukan permintaan untuk fail statik ke pelayan Nginx dan memajukan permintaan dinamik ke pelayan PHP-FPM untuk diproses . Berikut ialah contoh konfigurasi Nginx:

server {
    listen 80;
    server_name example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula menentukan blok pelayan, mendengar port 80 dan menetapkan nama_pelayan. Seterusnya, gunakan arahan lokasi untuk mengkonfigurasi peraturan pemajuan permintaan. Apabila URI yang diminta berakhir dengan .php, permintaan akan dimajukan ke port 9000 perkhidmatan php dan nama fail yang diminta akan dihantar ke pelayan PHP-FPM sebagai parameter SCRIPT_FILENAME.

3. Konfigurasi MariaDB
Apabila membina seni bina aplikasi berskala, kebolehskalaan pangkalan data juga sangat penting. Dalam seni bina Docker, kami boleh menggunakan dan mengkonfigurasi contoh pangkalan data dengan cepat dengan menggunakan imej MariaDB.

Dalam contoh fail Docker Compose di atas, kami menggunakan imej MariaDB terkini dan menetapkan beberapa pembolehubah persekitaran untuk mengkonfigurasi pangkalan data. Melalui pembolehubah persekitaran ini, kita boleh menetapkan kata laluan akar, nama pangkalan data, nama pengguna dan kata laluan pangkalan data.

4. Gunakan Docker Compose untuk membina dan mengurus aplikasi
Dengan fail konfigurasi di atas, kami boleh menggunakan arahan Docker Compose untuk membina dan mengurus aplikasi kami. Berikut adalah beberapa Docker yang biasa digunakan untuk menyusun arahan:

  • Membuat Permohonan:

    docker-compose up -d
    Salin selepas log masuk
  • lose Permohonan:

    docker-compose down
    Salin selepas log masuk
    e
  • View Log Aplikasi:

    docker-compose logs
    Salin selepas log masuk
  • View Status Permohonan:

    docker-compose ps
    Salin selepas log masuk

    Melalui arahan ini, kita boleh membina, memulakan dan mengurus aplikasi dengan mudah.

    5. Ringkasan
    Artikel ini memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala dan menyediakan contoh kod khusus. Dengan menggunakan alatan ini, kami boleh memudahkan proses penggunaan dan pengurusan aplikasi serta mencapai kebolehskalaan aplikasi.

    Perlu diingat bahawa contoh yang disediakan dalam artikel ini adalah untuk tujuan demonstrasi sahaja dan mungkin sedikit berbeza daripada persekitaran pengeluaran sebenar. Semasa proses penggunaan sebenar, pelarasan dan pengoptimuman perlu dibuat berdasarkan keadaan sebenar.

    Saya berharap melalui pengenalan artikel ini, pembaca dapat memahami asas menggunakan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala, dan dapat menggunakan teknologi ini dalam amalan untuk membina aplikasi mereka sendiri.

    Atas ialah kandungan terperinci Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan