Rumah pembangunan bahagian belakang tutorial php Penyelesaian luar kotak untuk Docker Compose, Nginx dan MariaDB: Sediakan persekitaran PHP dengan pantas

Penyelesaian luar kotak untuk Docker Compose, Nginx dan MariaDB: Sediakan persekitaran PHP dengan pantas

Oct 12, 2023 pm 12:46 PM
docker nginx mariadb

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Penyelesaian luar kotak untuk Docker Compose, Nginx dan MariaDB: Sediakan persekitaran PHP dengan pantas

Ikhtisar:

Apabila membangunkan dan menggunakan aplikasi PHP, adalah penting untuk menyediakan yang boleh dipercayai dan mudah- untuk mengurus persekitaran. Docker Compose, Nginx dan MariaDB boleh menyediakan penyelesaian untuk membina persekitaran PHP dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Docker Compose untuk mengkonfigurasi dan menjalankan bekas, menggunakan Nginx sebagai pelayan web, menggunakan MariaDB sebagai pangkalan data dan membina persekitaran PHP dengan cepat.

1. Pasang Docker dan Docker Compose:

Mula-mula, kita perlu memasang Docker dan Docker Compose pada mesin tempatan. Panduan pemasangan untuk sistem pengendalian yang berbeza boleh didapati di laman web rasmi Docker. Selepas pemasangan selesai, sahkan sama ada pemasangan berjaya Anda boleh memasukkan arahan berikut dalam terminal atau command prompt:

1

2

docker --version

docker-compose --version

Salin selepas log masuk

Jika nombor versi boleh dipaparkan dengan betul, ini bermakna Docker dan Docker Compose telah berjaya dipasang.

2 Cipta fail Docker Compose:

Seterusnya, kami perlu mencipta fail yang dipanggil docker-compose.yml dan tentukan perkhidmatan dan konfigurasi kontena kami di dalamnya.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

version: '3'

services:

  nginx:

    build:

      context: .

      dockerfile: nginx.dockerfile

    ports:

      - 80:80

    depends_on:

      - php

  php:

    build:

      context: .

      dockerfile: php.dockerfile

    volumes:

      - ./src:/var/www/html

  mariadb:

    image: mariadb

    environment:

      - MYSQL_ROOT_PASSWORD=secret

Salin selepas log masuk

Penjelasan:

  • perkhidmatan nginx: Gunakan arahan bina untuk membina bekas berasaskan Nginx, petakan port 80 mesin tempatan ke port 80 kontena dan bergantung pada perkhidmatan php. Perkhidmatan
  • php: Gunakan arahan bina untuk membina bekas yang mengandungi sambungan PHP yang diperlukan dan lekapkan direktori ./src mesin tempatan ke direktori /var/www/html bekas untuk mencapai kemas kini segerak kod .
  • perkhidmatan mariadb: Gunakan imej lalai MariaDB Docker dan tetapkan kata laluan ROOT kepada rahsia.

3 Cipta fail Docker dan fail konfigurasi:

Seterusnya, kita perlu mencipta fail Docker dan fail konfigurasi untuk menyediakan konfigurasi dan kebergantungan yang diperlukan semasa membina imej.

  1. nginx.dockerfile:

1

2

3

4

FROM nginx

 

COPY nginx.conf /etc/nginx/nginx.conf

COPY default.conf /etc/nginx/conf.d/default.conf

Salin selepas log masuk

Penjelasan: Bina imej baharu daripada imej Nginx rasmi, dan kemudian salin fail nginx.conf dan default.conf setempat ke lokasi bekas yang sepadan.

  1. php.dockerfile:

1

2

3

4

5

6

7

8

FROM php:7.4-fpm

 

RUN apt-get update && apt-get install -y

    zlib1g-dev

    libzip-dev

    && docker-php-ext-install zip pdo_mysql

 

COPY php.ini /usr/local/etc/php/conf.d/custom.ini

Salin selepas log masuk

Penjelasan: Bina imej baharu daripada imej PHP rasmi, kemudian gunakan arahan apt-get untuk memasang kebergantungan yang diperlukan, dan pasang sambungan zip dan pdo_mysql melalui docker-php-ext -memasang arahan . Akhir sekali, salin fail php.ini tempatan ke bekas.

  1. nginx.conf:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

user  nginx;

worker_processes  auto;

 

error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;

 

events {

    worker_connections  1024;

}

 

http {

    include       /etc/nginx/mime.types;

    default_type  application/octet-stream;

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  /var/log/nginx/access.log  main;

     

    sendfile        on;

    keepalive_timeout  65;

 

    server {

        listen       80;

        server_name  localhost;

 

        root   /var/www/html;

        index  index.php index.html;

 

        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

Penjelasan: Ini ialah fail konfigurasi Nginx. Dikonfigurasikan dengan laluan log lalai, tetapan acara, tetapan http dan blok pelayan asas untuk mengendalikan permintaan dan menyerahkan pemprosesan PHP kepada bekas php.

  1. default.conf:

1

2

3

4

5

6

7

8

9

10

11

12

server {

    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

Penjelasan: Ini ialah fail konfigurasi lalai Nginx. Sama seperti tetapan blok pelayan dalam fail nginx.conf.

4 Mula membina dan menjalankan bekas:

Selepas menyediakan semua fail konfigurasi, kami boleh mula membina dan menjalankan bekas. Dalam terminal atau command prompt, pergi ke direktori di mana fail docker-compose.yml berada dan jalankan arahan berikut:

1

docker-compose up --build

Salin selepas log masuk

Arahan ini akan memulakan proses membina imej dan menjalankan bekas. Setelah selesai, anda akan melihat bekas berjalan dan aplikasi PHP boleh diakses melalui http://localhost.

Jika anda perlu menjalankan bekas di latar belakang, anda boleh menggunakan arahan berikut:

1

docker-compose up -d --build

Salin selepas log masuk

Arahan ini akan menjalankan bekas dalam mod daemon.

Ringkasan:

Dengan penyelesaian luar biasa untuk Docker Compose, Nginx dan MariaDB, kami boleh membina dan mengurus persekitaran PHP dengan cepat. Kelebihan mudah alih dan kontena Docker menjadikan pembangunan dan penggunaan aplikasi PHP lebih mudah dan lebih dipercayai. Saya harap artikel ini membantu anda Untuk butiran lanjut tentang contoh kod, sila rujuk fail konfigurasi yang dinyatakan dalam artikel ini.

Atas ialah kandungan terperinci Penyelesaian luar kotak untuk Docker Compose, Nginx dan MariaDB: Sediakan persekitaran PHP dengan pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

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)

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

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").

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

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.

Cara memulakan semula Docker Cara memulakan semula Docker Apr 15, 2025 pm 12:06 PM

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

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)

Cara Memulakan Bekas oleh Docker Cara Memulakan Bekas oleh Docker Apr 15, 2025 pm 12:27 PM

Docker Container Startup Langkah: Tarik Imej Bekas: Run "Docker Pull [Mirror Name]". Buat bekas: Gunakan "Docker Buat [Pilihan] [Nama Mirror] [Perintah dan Parameter]". Mulakan bekas: Jalankan "Docker Start [Nama Container atau ID]". Semak Status Kontena: Sahkan bahawa bekas sedang berjalan dengan "Docker PS".

Cara membuat bekas untuk Docker Cara membuat bekas untuk Docker Apr 15, 2025 pm 12:18 PM

Buat bekas di Docker: 1. Tarik Imej: Docker Pull [Nama Cermin] 2. Buat bekas: Docker Run [Options] [Mirror Name] [Command] 3. Mulailah bekas: Docker Start [Nama Container]

See all articles