Best Practices for Docker Compose, Nginx, and MariaDB: Monitoring and Optimization of Deployed PHP Applications
Introduction:
In modern application development, containers Transformation has become a popular way to help us better manage and deploy applications. Docker Compose is a tool for defining and running multiple containers, which simplifies the application deployment and management process. This article will introduce how to use Docker Compose combined with Nginx and MariaDB to deploy and optimize PHP applications, and give specific code examples.
version: '3' services: nginx: image: nginx ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:7.4-fpm volumes: - ./php.ini:/usr/local/etc/php/php.ini - ./app:/var/www/html depends_on: - mariadb mariadb: image: mariadb environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - ./data:/var/lib/mysql
In this example, we define three services: nginx, php and mariadb. The nginx service will listen to port 80 of the host and forward the request to the php service for processing. The php service uses the php:7.4-fpm image and mounts the php.ini and application file directories. The mariadb service uses the mariadb mirror, sets the root password of the database, and mounts the data directory.
worker_processes auto; events { worker_connections 1024; } http { # 其他配置项省略 server { listen 80; server_name localhost; root /var/www/html; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
In this example, we configure the number of Nginx worker processes, the number of event connections, and the http service. In the server block, we defined the method of listening to port 80, setting the root directory and processing PHP scripts. Pay attention to modify the fastcgi_pass directive to the container address of the PHP service.
<?php $host = 'mariadb'; $user = 'root'; $password = '123456'; $database = 'mydb'; $conn = new mysqli($host, $user, $password, $database); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $conn->close(); ?>
In this example, we used mariadb as the hostname and the root password defined earlier.
docker-compose up -d
This command will start all defined services and Runs in the background.
docker stats
command to check the resource usage of each container, and you can find abnormalities and performance bottlenecks in time. docker-compose logs
command to view the log information of the container to quickly locate errors and problems. Conclusion:
This article introduces how to use Docker Compose, Nginx and MariaDB to deploy and optimize PHP applications, giving specific code examples. Through containerized deployment, we can easily manage and expand applications, and improve application performance and stability through monitoring and optimization. I hope this article helps you when deploying PHP applications.
The above is the detailed content of Best Practices for Docker Compose, Nginx, and MariaDB: Monitoring and Optimizing Deployed PHP Applications. For more information, please follow other related articles on the PHP Chinese website!