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
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
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 :
Description de l'élément de configuration du service db :
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
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
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
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; } }
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
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!