Home > Backend Development > PHP Tutorial > Build a highly available PHP application architecture using Docker Compose, Nginx and MariaDB

Build a highly available PHP application architecture using Docker Compose, Nginx and MariaDB

王林
Release: 2023-10-12 09:28:01
Original
1382 people have browsed it

使用Docker Compose、Nginx和MariaDB构建高可用性的PHP应用程序架构

Build a highly available PHP application architecture using Docker Compose, Nginx, and MariaDB

Overview:
When developing and deploying PHP applications, build a highly available Availability architecture is very important. By using Docker Compose, Nginx and MariaDB, we can implement a reliable and scalable application architecture. This article will introduce how to use these tools to build a highly available PHP application architecture, and attach specific code examples.

Step 1: Install Docker and Docker Compose
First, we need to install Docker and Docker Compose. Please choose the appropriate installation method according to your operating system. After the installation is complete, confirm that Docker and Docker Compose have been successfully installed and can be run from the command line.

Step 2: Create Docker Compose File
Next, we will create a file called docker-compose.yml and define our service in it. The following is the content of an example docker-compose.yml file:

version: '3'
services:
webserver:

image: nginx:latest
ports:
  - 80:80
volumes:
  - ./nginx.conf:/etc/nginx/nginx.conf
  - ./public:/var/www/html/public
depends_on:
  - php
Copy after login

php:

image: php:7.4-fpm
volumes:
  - ./public:/var/www/html/public
Copy after login

database:

image: mariadb:latest
environment:
  - MYSQL_ROOT_PASSWORD=yourpassword
volumes:
  - ./data:/var/lib/mysql
Copy after login

In the above example, we defined 3 services: webserver, php and database. Corresponds to Nginx, PHP and MariaDB respectively.

Step 3: Configure Nginx
Create a file named nginx.conf and configure Nginx in it. The following is a simple example configuration:

events {}
http {

server {
    listen 80;
    server_name localhost;
    root /var/www/html/public;
    
    location / {
        try_files $uri /index.php$is_args$args;
    }
    
    location ~ .php$ {
        fastcgi_pass php:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
        fastcgi_param PHP_VALUE "variables_order=EGPCS";
    }
}
Copy after login

}

In the above example configuration, we specified Nginx to listen on port 80 , and forward the request to the PHP-FPM container.

Step 4: Writing a PHP Application
Now, we will create a simple PHP application for testing our architecture. Create a file named index.php in the public directory and write the following content in it:

phpinfo();

?>

This simple sample application will display PHP configuration information.

Step 5: Start the application
After everything is ready, we can start our application using the following command:

$ docker-compose up -d

In After executing the command, Docker will download the required image, create and start the container. At the same time, Nginx will listen to port 80 and forward the request to the running PHP container.

Step 6: Test the application
Now, we can access http://localhost in a web browser and will see the PHP configuration information.

Conclusion:
By using Docker Compose, Nginx and MariaDB, we can easily build a highly available PHP application architecture. This architecture is scalable and stable, and can easily integrate other components and services. Whether you are in a development environment or a production environment, you can benefit from using this architecture.

I hope the code examples in this article can help you quickly build a high-availability PHP application architecture. I wish you success!

The above is the detailed content of Build a highly available PHP application architecture using Docker Compose, Nginx and MariaDB. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template