


Bina kelompok aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB
Bina kluster aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB
Petikan:
Dalam pembangunan aplikasi moden, membina kelompok aplikasi berskala adalah penting. Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina kluster aplikasi PHP berskala dengan mudah yang menyediakan ketersediaan dan fleksibiliti tinggi kepada aplikasi kami. Dalam artikel ini, kami akan meneroka cara menggunakan alatan ini untuk membina gugusan aplikasi PHP yang mudah tetapi berkuasa dan menyediakan contoh kod konkrit.
Bahagian Pertama: Persediaan Persekitaran
Sebelum kita mula, kita perlu memastikan bahawa Docker dan Docker Compose telah dipasang. Buka terminal dalam persekitaran pembangunan anda dan jalankan arahan berikut untuk menyemak sama ada ia dipasang dengan betul:
$ docker --version $ docker-compose --version
Jika maklumat versi yang sepadan dikembalikan, Docker dan Docker Compose telah berjaya dipasang. Seterusnya, kami akan mencipta direktori projek baharu dan mencipta fail docker-compose.yml di dalamnya.
$ mkdir my-php-cluster $ cd my-php-cluster $ touch docker-compose.yml
Bahagian Kedua: Menulis Fail Karang Docker
Seterusnya, kami akan mentakrifkan konfigurasi kelompok aplikasi kami dalam fail docker-compose.yml. Konfigurasi ini akan termasuk definisi perkhidmatan untuk PHP, Nginx dan MariaDB. Berikut ialah contoh fail asas docker-compose.yml:
version: '3' services: php: build: context: . dockerfile: Dockerfile.php restart: always ports: - "8000:80" nginx: build: context: . dockerfile: Dockerfile.nginx restart: always ports: - "80:80" depends_on: - php db: image: mariadb command: --default-authentication-plugin=mysql_native_password restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret
Dalam contoh ini, kami mempunyai tiga perkhidmatan yang ditakrifkan: php, nginx dan db. Perkhidmatan php akan membina imej Docker yang mengandungi PHP dan memetakan port ke port 8000 hos. Perkhidmatan nginx akan membina imej Docker yang mengandungi Nginx dan memetakan port ke port 80 hos. Perkhidmatan db akan menggunakan imej Docker yang disediakan secara rasmi oleh MariaDB dan memetakan port ke port 3306 hos. Akhir sekali, kami juga menentukan pembolehubah persekitaran perkhidmatan db, yang digunakan untuk menetapkan kata laluan akar.
Bahagian 3: Menulis Fail Docker
Untuk imej kita berjaya dibina, kita juga perlu menulis Fail Docker.
Mula-mula, kami mencipta fail bernama Dockerfile.php dan menyalin kandungan berikut ke dalam fail:
FROM php:7.4-fpm WORKDIR /var/www/html RUN apt-get update && apt-get install -y libzip-dev zip unzip && docker-php-ext-install zip COPY . . RUN composer install --no-dev
Dockerfile ini menggunakan imej PHP 7.4 FPM rasmi sebagai imej asas dan memasang beberapa tambahan melalui kebergantungan arahan RUN. Kami kemudian menyalin keseluruhan direktori aplikasi ke direktori /var/www/html bekas dan menjalankan arahan pemasangan komposer untuk memasang kebergantungan PHP.
Seterusnya, kami mencipta fail bernama Dockerfile.nginx dan menyalin kandungan berikut ke dalam fail:
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf
Dockerfile ini menggunakan imej rasmi Nginx terkini sebagai imej asas dan menambah fail nginx.conf tersuai Salin ke /etc /nginx/ direktori bekas.
Bahagian 4: Buat Fail Konfigurasi Nginx
Dalam Fail Docker kami, kami telah menyebut fail konfigurasi yang dipanggil nginx.conf. Sekarang, kami mencipta fail bernama nginx.conf dan menyalin kandungan berikut ke dalam fail:
events {} http { upstream php { server php:9000; } server { listen 80; location / { proxy_pass http://php; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
Fail konfigurasi nginx.conf ini mentakrifkan pelayan huluan dipanggil php yang akan meminta proksi kepada perkhidmatan php Port 9000. Kami kemudiannya menentukan blok pelayan yang mendengar pada port 80 dan proksi semua permintaan ke pelayan huluan PHP.
Bahagian 5: Menjalankan Kluster Aplikasi
Kini, kami telah melengkapkan semua konfigurasi dan boleh memulakan kluster aplikasi kami dengan menjalankan perintah docker-compose up.
Di terminal, pergi ke direktori projek kami dan jalankan arahan berikut:
$ docker-compose up -d
Arahan di atas akan memulakan kluster aplikasi kami di latar belakang. Sila tunggu seketika sehingga semua perkhidmatan bermula dengan jayanya.
Bahagian Enam: Menguji Kluster Aplikasi
Setelah kluster aplikasi kami berjaya dimulakan, kami boleh mengujinya dengan mengakses http://localhost melalui penyemak imbas.
Masukkan http://localhost dalam penyemak imbas dan tekan Enter. Jika semuanya baik-baik saja, anda sepatutnya dapat melihat aplikasi anda berjalan.
Bahagian 7: Menskala Kluster Aplikasi
Dengan menggunakan ciri skala Docker Compose, kami boleh menskalakan kluster aplikasi kami dengan mudah.
Andaikan kita ingin menambah bilangan contoh perkhidmatan php, kita boleh menjalankan arahan berikut:
$ docker-compose up -d --scale php=3
Arahan di atas akan memulakan 3 contoh php untuk mencapai pengembangan mendatar kelompok aplikasi kami.
Kesimpulan:
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina kluster aplikasi PHP berskala dengan mudah. Dalam artikel ini, kami menyediakan contoh asas untuk memulakan anda, serta contoh kod terperinci. Saya harap artikel ini membantu dan memberi inspirasi kepada anda untuk membina kelompok aplikasi yang lebih berkuasa.
Atas ialah kandungan terperinci Bina kelompok aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Untuk mendapatkan versi Docker, anda boleh melakukan langkah -langkah berikut: Jalankan arahan Docker "Docker -version" untuk melihat versi klien dan pelayan. Untuk MAC atau Windows, anda juga boleh melihat maklumat versi melalui tab versi Docktop GUI atau menu desktop Docker.

Untuk menyimpan imej di Docker, anda boleh menggunakan arahan Docker Commit untuk membuat imej baru, yang mengandungi keadaan semasa bekas yang ditentukan, Sintaks: Docker Commit [Options] Nama Imej Container ID. Untuk menyimpan imej ke repositori, anda boleh menggunakan arahan PUSH Docker, Sintaks: Docker Push Nama Imej [: TAG]. Untuk mengimport imej yang disimpan, anda boleh menggunakan arahan tarik docker, sintaks: docker tarik nama imej [: tag].

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)
