Maison > développement back-end > tutoriel php > Migration rapide des applications PHP avec Docker Compose, Nginx et MariaDB

Migration rapide des applications PHP avec Docker Compose, Nginx et MariaDB

王林
Libérer: 2023-10-12 12:36:02
original
1149 Les gens l'ont consulté

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的快速迁移

Migration rapide des applications PHP via Docker Compose, Nginx et MariaDB

Avec le développement continu et la popularité du cloud computing, de plus en plus d'applications commencent à être déployées et gérées à l'aide de la conteneurisation. Docker est actuellement l'une des plates-formes de conteneurisation les plus populaires, offrant des solutions de packaging et de livraison d'applications rapides et légères.

Dans cet article, nous présenterons comment utiliser les trois outils Docker Compose, Nginx et MariaDB pour réaliser une migration rapide des applications PHP.

1. Préparation de l'environnement
Avant de commencer, nous devons installer Docker et Docker Compose. Docker est une plate-forme de conteneurisation open source et Docker Compose est un outil permettant de définir et d'exécuter plusieurs conteneurs Docker.

Pour savoir comment installer Docker, veuillez vous référer à la documentation officielle (https://docs.docker.com/get-docker/). L'installation de Docker Compose peut être complétée avec la commande suivante :

$ sudo pip install docker-compose
Copier après la connexion

2. Créez un fichier Docker Compose
Docker Compose utilise un fichier de configuration au format YAML pour définir et gérer plusieurs conteneurs. Nous devons créer un fichier appelé docker-compose.yml et y définir le conteneur de notre application.

Voici un exemple simple :

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - 80:80
    volumes:
      - ./web:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_DATABASE: myapp
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
      MYSQL_ROOT_PASSWORD: myrootpassword
    volumes:
      - ./db:/var/lib/mysql
Copier après la connexion

Dans cet exemple, nous avons défini deux services (web et db). Le service Web est utilisé pour exécuter notre application PHP et le service db est utilisé pour exécuter la base de données MariaDB.

  • Description de l'élément de configuration du service Web :

    • build : Spécifiez le chemin de contexte et le fichier de construction pour créer l'image.
    • restart : configurez le conteneur pour qu'il redémarre automatiquement après la sortie.
    • ports : mappez le port 80 du conteneur au port 80 de l'hôte.
    • volumes : montez le répertoire Web sur l'hôte dans le répertoire /var/www/html du conteneur.
    • depends_on : Le service Web dépend du service db.
  • Description de l'élément de configuration du service db :

    • image : Spécifiez l'image MariaDB à utiliser.
    • restart : configurez le conteneur pour qu'il redémarre automatiquement après la sortie.
    • environnement : définissez les variables d'environnement de MariaDB, y compris le nom de la base de données, l'utilisateur, le mot de passe, etc.
    • volumes : montez le répertoire db sur l'hôte dans le répertoire /var/lib/mysql du conteneur.

3. Écrire Dockerfile
Dockerfile est un fichier utilisé pour créer une image Docker. Il définit une série d'instructions pour décrire le processus de construction d'une image.

Ce qui suit est un exemple simple de Dockerfile :

FROM php:7.4-apache

RUN apt-get update && 
    apt-get install -y libpq-dev && 
    docker-php-ext-install pdo pdo_mysql pdo_pgsql && 
    a2enmod rewrite

WORKDIR /var/www/html

COPY . .

RUN chown -R www-data:www-data /var/www/html
Copier après la connexion

Ce Dockerfile est basé sur l'image officielle php:7.4-apache, installe certaines dépendances et extensions et définit le répertoire de travail sur /var/www/html. Enfin, utilisez l'instruction COPY pour copier tous les fichiers du répertoire actuel dans le répertoire /var/www/html du conteneur et définissez les autorisations du répertoire /var/www/html.

4. Démarrez le conteneur
Après avoir terminé les préparatifs ci-dessus, nous pouvons utiliser la commande suivante pour démarrer le conteneur :

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

Cette commande démarrera les deux conteneurs que nous avons définis (web et db) et les exécutera en arrière-plan.

5. Configurez le proxy inverse Nginx
Par défaut, Docker Compose créera un réseau par défaut pour chaque service. Nous pouvons utiliser le nom du conteneur comme nom de domaine pour accéder aux services du conteneur.

Cependant, afin de mieux contrôler et gérer notre application, nous pouvons utiliser Nginx comme proxy inverse pour transmettre les requêtes au conteneur correspondant.

Tout d'abord, nous devons installer et configurer Nginx. Il peut être installé via la commande suivante :

$ sudo apt-get install nginx
Copier après la connexion

Ensuite, ajoutez le contenu suivant au fichier de configuration Nginx :

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://web:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Copier après la connexion

Dans ce fichier de configuration, nous transmettons la requête au port 80 du conteneur nommé web via la directive proxy_pass, et définir certaines informations d'en-tête liées au proxy.

Enfin, redémarrez le service Nginx pour que la configuration prenne effet :

$ sudo service nginx restart
Copier après la connexion

6. Conclusion
En utilisant Docker Compose, Nginx et MariaDB, nous pouvons migrer et déployer des applications PHP rapidement et facilement. Docker fournit un environnement fiable et reproductible qui sépare l'environnement d'exécution de l'application de l'environnement hôte. La fonction de proxy inverse de Nginx peut facilement effectuer le transfert de trafic et l'équilibrage de charge. MariaDB fournit une base de données relationnelle performante et fiable.

J'espère que cet article pourra vous fournir de l'aide et des conseils dans la migration rapide des applications PHP. Si vous avez des questions ou des préoccupations, n'hésitez pas à nous les poser. Amusez-vous à créer et à gérer des applications avec Docker !

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