Rumah > Artikel > pembangunan bahagian belakang > Penghijrahan pantas aplikasi PHP dengan Docker Compose, Nginx dan MariaDB
Migrasi pantas aplikasi PHP melalui Docker Compose, Nginx dan MariaDB
Dengan pembangunan berterusan dan populariti pengkomputeran awan, semakin banyak aplikasi mula digunakan dan diurus menggunakan kontena. Docker kini merupakan salah satu platform kontena paling popular, menyediakan penyelesaian pembungkusan dan penghantaran aplikasi yang pantas dan ringan.
Dalam artikel ini, kami akan memperkenalkan cara menggunakan tiga alat Docker Compose, Nginx dan MariaDB untuk mencapai pemindahan pantas aplikasi PHP.
1. Persediaan persekitaran
Sebelum kita mula, kita perlu memasang Docker dan Docker Compose. Docker ialah platform kontena sumber terbuka dan Docker Compose ialah alat untuk mentakrif dan menjalankan berbilang bekas Docker.
Untuk cara memasang Docker, sila rujuk dokumentasi rasmi (https://docs.docker.com/get-docker/). Memasang Docker Compose boleh dilengkapkan dengan arahan berikut:
$ sudo pip install docker-compose
2. Buat fail Docker Compose
Docker Compose menggunakan fail konfigurasi format YAML untuk mentakrif dan mengurus berbilang bekas. Kami perlu mencipta fail yang dipanggil docker-compose.yml dan menentukan bekas aplikasi kami di dalamnya.
Berikut ialah contoh mudah:
version: '3' services: web: build: context: . dockerfile: Dockerfile restart: always ports: - 80:80 volumes: - ./web:/var/www/html depends_on: - db db: image: mariadb:latest restart: always environment: MYSQL_DATABASE: myapp MYSQL_USER: myuser MYSQL_PASSWORD: mypassword MYSQL_ROOT_PASSWORD: myrootpassword volumes: - ./db:/var/lib/mysql
Dalam contoh ini, kami telah mentakrifkan dua perkhidmatan (web dan db). Perkhidmatan web digunakan untuk menjalankan aplikasi PHP kami dan perkhidmatan db digunakan untuk menjalankan pangkalan data MariaDB.
Perihalan item konfigurasi perkhidmatan web:
penerangan item konfigurasi perkhidmatan db:
3. Tulis Fail Docker
Fail Docker ialah fail yang digunakan untuk membina imej Docker. Ia mentakrifkan satu siri arahan untuk menerangkan proses pembinaan imej.
Berikut ialah contoh fail Docker yang mudah:
FROM php:7.4-apache RUN apt-get update && apt-get install -y libpq-dev && docker-php-ext-install pdo pdo_mysql pdo_pgsql && a2enmod rewrite WORKDIR /var/www/html COPY . . RUN chown -R www-data:www-data /var/www/html
Fail Docker ini berdasarkan imej php:7.4-apache rasmi, memasang beberapa kebergantungan dan sambungan, dan menetapkan direktori kerja kepada /var/www/html. Akhir sekali, gunakan arahan COPY untuk menyalin semua fail dalam direktori semasa ke direktori /var/www/html bekas dan tetapkan kebenaran direktori /var/www/html.
4. Mulakan bekas
Selepas melengkapkan persediaan di atas, kita boleh menggunakan arahan berikut untuk memulakan bekas:
$ docker-compose up -d
Arahan ini akan memulakan dua bekas yang kita takrifkan (web dan db) dan menjalankannya di latar belakang.
5. Konfigurasikan proksi terbalik Nginx
Secara lalai, Docker Compose akan mencipta rangkaian lalai untuk setiap perkhidmatan. Kita boleh menggunakan nama bekas sebagai nama domain untuk mengakses perkhidmatan dalam bekas.
Walau bagaimanapun, untuk mengawal dan mengurus aplikasi kami dengan lebih baik, kami boleh menggunakan Nginx sebagai proksi terbalik untuk memajukan permintaan ke bekas yang sepadan.
Pertama, kita perlu memasang dan mengkonfigurasi Nginx. Ia boleh dipasang melalui arahan berikut:
$ sudo apt-get install nginx
Kemudian, tambahkan kandungan berikut pada fail konfigurasi Nginx:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://web:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Dalam fail konfigurasi ini, kami memajukan permintaan ke port 80 bekas bernama web melalui arahan proxy_pass, dan tetapkan beberapa maklumat pengepala berkaitan Proksi.
Akhir sekali, mulakan semula perkhidmatan Nginx untuk menjadikan konfigurasi berkuat kuasa:
$ sudo service nginx restart
6. Kesimpulan
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh memindahkan dan menggunakan aplikasi PHP dengan cepat dan mudah. Docker menyediakan persekitaran yang boleh dipercayai dan boleh diulang yang memisahkan persekitaran berjalan aplikasi daripada persekitaran hos. Fungsi proksi terbalik Nginx boleh melakukan pemajuan trafik dan pengimbangan beban dengan mudah. MariaDB menyediakan pangkalan data hubungan berprestasi tinggi dan boleh dipercayai.
Saya harap artikel ini dapat memberi anda sedikit bantuan dan panduan dalam penghijrahan pantas aplikasi PHP. Jika anda mempunyai sebarang soalan atau kebimbangan, sila berasa bebas untuk bertanya kepada kami. Berseronoklah membina dan mengurus aplikasi dengan Docker!
Atas ialah kandungan terperinci Penghijrahan pantas aplikasi PHP dengan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!