Maison > développement back-end > tutoriel php > Optimisation des problèmes de performances des applications PHP à l'aide de Docker Compose, Nginx et MariaDB

Optimisation des problèmes de performances des applications PHP à l'aide de Docker Compose, Nginx et MariaDB

WBOY
Libérer: 2023-10-12 13:36:01
original
775 Les gens l'ont consulté

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能问题

Optimisez les problèmes de performances des applications PHP à l'aide de Docker Compose, Nginx et MariaDB

Lors du développement et du déploiement d'applications PHP, des problèmes de performances sont souvent rencontrés. Pour résoudre ces problèmes, nous pouvons exploiter Docker Compose, Nginx et MariaDB pour optimiser les performances des applications.

Docker Compose est un outil permettant de définir et de gérer plusieurs conteneurs Docker. Cela nous aide à créer et exécuter facilement plusieurs conteneurs tels que Nginx, PHP et MariaDB. Alors que Nginx est un serveur Web hautes performances, MariaDB est une base de données relationnelle populaire.

Ce qui suit présentera en détail comment utiliser Docker Compose, Nginx et MariaDB pour optimiser les performances des applications PHP.

  1. Créer un fichier Docker Compose

Tout d'abord, nous devons créer un fichier Docker Compose pour définir notre conteneur. Dans un fichier appelé docker-compose.yml, notre conteneur peut être défini comme suit :

version: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./public:/var/www/html

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

  mariadb:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./data:/var/lib/mysql
Copier après la connexion

Dans l'exemple ci-dessus, nous avons défini trois services : nginx, php et mariadb. Le service Nginx utilise la dernière version de l'image Nginx et mappe le port 80 de l'hôte au port 80 du conteneur. Nous avons également monté un fichier nginx.conf local dans le conteneur pour personnaliser la configuration Nginx. Le service PHP utilise l'image PHP 7.4-fpm et monte le répertoire ./public de l'hôte dans le répertoire /var/www/html du conteneur. Le service MariaDB utilise la dernière version de l'image MariaDB, définit le mot de passe de l'utilisateur root et monte le répertoire ./data de l'hôte dans le répertoire /var/lib/mysql du conteneur.

  1. Écrire le fichier de configuration Nginx

Ensuite, nous devons écrire le fichier de configuration Nginx. Créez un fichier nommé nginx.conf dans le même répertoire que le fichier docker-compose.yml et configurez-le selon l'exemple suivant :

user  nginx;
worker_processes  auto;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons défini un bloc serveur nommé localhost pour écouter le port 80. Le répertoire racine est défini sur /var/www/html et toutes les requêtes sont envoyées à index.php pour traitement. Dans le même temps, nous avons également configuré fastcgi_pass pour transmettre les requêtes PHP vers le port 9000 dans le conteneur php.

  1. Écrire une application PHP

Maintenant, nous devons écrire une application PHP simple pour tester l'effet de l'optimisation des performances. Créez un fichier nommé index.php dans le répertoire ./public et ajoutez le contenu suivant :

<?php
echo "Hello, Docker!";
?>
Copier après la connexion
  1. Démarrez le conteneur

Entrez le répertoire où se trouve le fichier docker-compose.yml dans le terminal et exécutez la commande suivante pour démarrer le conteneur :

docker-compose up -d
Copier après la connexion

Cela démarrera et exécutera en arrière-plan tous les conteneurs que nous avons définis.

  1. Performances des tests

Maintenant, nous pouvons accéder à http://localhost dans le navigateur et nous devrions voir la sortie Bonjour, Docker !. Cela signifie que notre application PHP s'est exécutée avec succès.

En utilisant Docker Compose, Nginx et MariaDB, nous pouvons facilement créer et gérer plusieurs conteneurs, et utiliser Nginx comme serveur Web haute performance et MariaDB comme base de données. Cela peut grandement améliorer les performances de notre application PHP.

Il est à noter qu'il ne s'agit que d'un exemple, vous pouvez effectuer une optimisation plus avancée en fonction de vos propres besoins. Par exemple, utilisez des outils de mise en cache tels que Redis pour améliorer les performances, ou utilisez des outils d'équilibrage de charge pour équilibrer la charge.

Résumé

Utiliser Docker Compose, Nginx et MariaDB pour optimiser les problèmes de performances dans les applications PHP est une méthode relativement simple et efficace. En utilisant Docker pour gérer et déployer des conteneurs, nous pouvons facilement créer un environnement d'application PHP stable et performant. J'espère que l'introduction de cet article pourra vous être utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal