Home  >  Article  >  Backend Development  >  Rapid deployment process for PHP applications using Docker Compose, Nginx and MariaDB

Rapid deployment process for PHP applications using Docker Compose, Nginx and MariaDB

WBOY
WBOYOriginal
2023-10-12 15:12:111351browse

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的快速部署流程

Use Docker Compose, Nginx and MariaDB to implement the rapid deployment process of PHP applications

Abstract:
This article will introduce how to use Docker Compose, Nginx and MariaDB to implement Process for quickly deploying PHP applications. We will use Docker Compose to define and manage the configuration of the containerized application, Nginx as the web server, and MariaDB as the database. By building and starting these containers, we can quickly deploy and run PHP applications.

Introduction:
With the development of cloud computing and containerization technology, it is becoming easier and easier to quickly deploy applications. Using Docker Compose, we can define and manage the containers required by our application by writing a YAML configuration file. In this article, we will demonstrate how to use Docker Compose to define and deploy a PHP application containing Nginx and MariaDB.

Step 1: Install Docker and Docker Compose
First, make sure you have Docker and Docker Compose installed on your system. You can download it from the official website and follow the instructions to install it.

Step 2: Create Project Directory
Before we begin, let’s create a new project directory. Within this directory we will create a file called docker-compose.yml that will define our application configuration.

Step 3: Create Docker Compose configuration file
In the project directory, create a file named docker-compose.yml and use the following sample code as a template:

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    volumes:
      - ./data:/var/lib/mysql

In In the above example, we defined two services: web and db. The web service is the service where our PHP application lives, and a file called a Dockerfile is used to build the web container. We need to map the local port 80 to the container's port 80, and mount the application code to the container's /var/www/html directory. The db service is our MariaDB database service, which uses the latest mariadb:latest image and sets the root password and database name of the database.

Step 4: Create Dockerfile
In the project directory, create a file called Dockerfile and use the following sample code as a template:

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    nginx 
    libmcrypt-dev 
    libjpeg-dev 
    libpng-dev 
    libfreetype6-dev 
    libxml2-dev 
    libzip-dev 
    zip 
    unzip

RUN docker-php-ext-install mysqli pdo pdo_mysql xml zip

COPY nginx.conf /etc/nginx/sites-available/default

WORKDIR /var/www/html

CMD service nginx start && php-fpm

In the above example, we use Used php:7.4-fpm as the base image, and installed some PHP extensions and Nginx. We also copy the nginx.conf file to the container's /etc/nginx/sites-available/default directory and set the working directory to /var/www/html.

Step 5: Create Nginx Configuration File
In the project directory, create a file called nginx.conf and use the following sample code as a template:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;

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

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

In the above example , we defined a simple Nginx server listening on port 80. The root directory is set to /var/www/html, and the processing method of PHP files is configured.

Step 6: Build and start the container
In the project directory, open a terminal and execute the following command to build and start the container:

docker-compose up -d

This command will build according to the Docker Compose configuration file and the container that starts the application. During the build process, Docker will automatically download and install the required images and dependencies.

Step 7: Test the Application
Now you can test your PHP application by visiting http://localhost in your web browser. If everything is fine, you will see the application's welcome page.

Conclusion:
By using Docker Compose, Nginx and MariaDB, we can quickly deploy and run PHP applications. By defining and managing the configuration of containerized applications, we can simplify and accelerate the application deployment process. I hope this article will help you achieve rapid deployment of PHP applications.

The above is the detailed content of Rapid deployment process for PHP applications using Docker Compose, Nginx and MariaDB. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn