Home  >  Article  >  Backend Development  >  Speed ​​up PHP application deployment with Docker Compose, Nginx and MariaDB

Speed ​​up PHP application deployment with Docker Compose, Nginx and MariaDB

WBOY
WBOYOriginal
2023-10-12 08:19:551020browse

使用Docker Compose、Nginx和MariaDB加速PHP应用程序的部署速度

Title: Accelerate the deployment of PHP applications using Docker Compose, Nginx and MariaDB

Introduction: With the widespread application of cloud computing and container technology, more and more Many developers are beginning to pay attention to how to quickly deploy and expand applications. In PHP development, using Docker Compose, Nginx and MariaDB can greatly speed up application deployment. This article will introduce how to use these tools to quickly build and manage the development environment of PHP applications.

1. Introduction to Docker Compose

Docker Compose is a tool for defining and running multi-container Docker applications. With a configuration file to manage the settings of all containers, we can use Docker Compose to define, run and stop the entire application at once. Using Docker Compose greatly simplifies the deployment process and provides container orchestration and scaling capabilities.

2. Nginx as a Web server

Nginx is a high-performance open source Web server and reverse proxy server. It can handle large numbers of concurrent connections while providing features such as load balancing, capacity scaling, and static content caching. In PHP applications, using Nginx as a web server can improve the performance and concurrent processing capabilities of the application.

The following is a simple Docker Compose configuration example using Nginx with PHP-FPM (PHP FastCGI Process Manager):

version: "3.7"
services:
  web:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./code:/var/www/html
  php:
    image: php:latest
    volumes:
      - ./code:/var/www/html

In the above configuration, we have defined two services :web and php. The web service uses Nginx mirroring and maps port 80 in the container to port 80 of the host. At the same time, we store the Nginx configuration file nginx.conf and PHP code in the specified directory of the host machine. The php service uses the PHP image and mounts the code directory to the container's /var/www/html directory.

3. Use MariaDB as a database

MariaDB is a popular relational database management system. It is a branch of MySQL and provides high performance, high availability and powerful functions. In PHP applications, using MariaDB as a database can improve data access speed and data management capabilities.

The following is a simple Docker Compose configuration example, using MariaDB with the above-mentioned Nginx and PHP-FPM:

version: "3.7"
services:
  web:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./code:/var/www/html
  php:
    image: php:latest
    volumes:
      - ./code:/var/www/html
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=yourpassword
    volumes:
      - ./data:/var/lib/mysql

In the above configuration, we added a new db service, using MariaDB mirror and set the root user's password. At the same time, we store the database data in the /var/lib/mysql directory of the container.

4. Use Docker Compose for deployment and management

After having the above Docker Compose configuration, we can use the following commands to deploy and manage PHP applications with one click:

  1. Build and start containers: Execute the following command in the directory containing the docker-compose.yml file to build and start all containers.

    docker-compose up -d
  2. Stop containers: Executing the following command will stop all containers.

    docker-compose down
  3. Expansion service: If you need to expand the web or php service, just adjust the number of copies of the corresponding service in the docker-compose.yml file.

    version: "3.7"
    services:
      web:
        image: nginx:latest
        ports:
          - 80:80
        volumes:
          - ./nginx.conf:/etc/nginx/nginx.conf
          - ./code:/var/www/html
        scale: 3
      php:
        image: php:latest
        volumes:
          - ./code:/var/www/html
        scale: 3

    Then, execute the following command to expand the capacity.

    docker-compose up -d --scale web=3 --scale php=3

By using Docker Compose, Nginx and MariaDB, we can quickly build and manage the development environment of PHP applications, and can easily deploy and expand. This approach not only speeds up application deployment, but also provides better performance and scalability.

The above is the detailed content of Speed ​​up PHP application deployment with 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