Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penghantaran aplikasi PHP yang berterusan dengan Docker Compose, Nginx dan MariaDB

Penghantaran aplikasi PHP yang berterusan dengan Docker Compose, Nginx dan MariaDB

WBOY
WBOYasal
2023-10-12 12:06:271342semak imbas

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的持续交付

Penyampaian berterusan aplikasi PHP melalui Docker Compose, Nginx dan MariaDB

Ikhtisar:
Dengan perkembangan pesat teknologi pengkomputeran awan dan kontena, semakin banyak aplikasi mula menggunakan kontena untuk mencapai penghantaran dan penggunaan yang pantas. Artikel ini akan memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina aplikasi PHP mudah dan melaksanakan proses penghantaran berterusan. Pada masa yang sama, kami akan memberikan contoh kod khusus untuk membantu pembaca memahami proses ini dengan lebih baik.

1. Persediaan

  1. Pasang Docker dan Docker Compose.

2. Buat fail konfigurasi Docker Compose
Buat fail bernama docker-compose.yml dan isikannya mengikut contoh kandungan di bawah.

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: example

3. Cipta fail konfigurasi Nginx
Buat fail bernama nginx.conf dan isikannya mengikut kandungan contoh berikut.

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html;

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

    location ~ .php$ {
        fastcgi_pass web:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

4. Buat fail aplikasi PHP
Buat fail bernama index.php dalam direktori root projek dan isikan mengikut kandungan contoh di bawah.

<?php
echo "Hello, World!";
?>

5. Buat Dockerfile
Buat fail bernama Dockerfile dalam direktori root projek dan isikannya mengikut contoh kandungan di bawah.

FROM php:7.4-fpm

WORKDIR /var/www/html

COPY . /var/www/html

RUN docker-php-ext-install mysqli pdo pdo_mysql

CMD ["php-fpm"]

EXPOSE 9000

6. Bina dan mulakan bekas
Laksanakan arahan berikut dalam direktori akar projek untuk membina dan memulakan bekas.

docker-compose up -d

7 Sahkan hasil yang sedang dijalankan
Lawati http://localhost dalam penyemak imbas Jika anda melihat perkataan "Hello, World!", ini bermakna bekas telah berjaya dijalankan.

8 Proses penghantaran berterusan
Apabila kami mengemas kini permohonan, kami perlu mengikuti langkah-langkah berikut untuk mencapai penghantaran berterusan.

  1. Ubah suai fail kod
    Sebelum mengubah suai fail kod, kita perlu menghentikan bekas yang sedang berjalan.
docker-compose down

Kemudian, kita boleh mengubah suai fail index.php, contohnya, menukar "Hello, World!".

  1. Bina semula dan mulakan bekas
    Laksanakan arahan berikut dalam direktori akar projek untuk membina semula dan memulakan bekas.
docker-compose up -d --build
  1. Sahkan hasil yang sedang dijalankan
    Lawati http://localhost dalam penyemak imbas Jika anda melihat perkataan "Hello, Docker!", ini bermakna kemas kini telah berjaya digunakan.

Kesimpulan:
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina aplikasi PHP dengan cepat dan melaksanakan proses penghantaran berterusan. Kelebihan teknologi kontena ialah ia boleh menyediakan persekitaran pembangunan, ujian dan pengeluaran yang konsisten, sangat memudahkan penggunaan dan penyelenggaraan. Pada masa yang sama, menggunakan Nginx sebagai proksi terbalik dan pengimbang beban boleh mengurus trafik permintaan dengan lebih baik. Melalui contoh kod di atas, pembaca boleh lebih memahami cara menggunakan alatan ini untuk melaksanakan proses penghantaran berterusan.

Atas ialah kandungan terperinci Penghantaran aplikasi PHP yang berterusan dengan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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