Maison >développement back-end >tutoriel php >Conteneuriser les applications PHP à l'aide de Docker Compose, Nginx et MariaDB
Titre : Conteneurisation d'applications PHP à l'aide de Docker Compose, Nginx et MariaDB
Introduction : Avec le développement rapide de la technologie de conteneurisation, de plus en plus de développeurs s'intéressent à l'utilisation de Docker pour le déploiement et la gestion d'applications. Cet article expliquera comment utiliser Docker Compose, Nginx et MariaDB pour implémenter la conteneurisation des applications PHP et donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et mettre en pratique.
Voici un exemple de notre fichier de configuration Docker Compose (docker-compose.yml) :
version: '3' services: webserver: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - php php: image: php:7.4-fpm volumes: - ./php.ini:/usr/local/etc/php/php.ini:ro - ./code:/var/www/html depends_on: - db db: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database MYSQL_USER: your_username MYSQL_PASSWORD: your_password volumes: - ./data:/var/lib/mysql
Nous avons trois services définis via ce fichier de configuration : serveur web, php et db. Le service du serveur Web utilise l'image Nginx et mappe le port 80 de l'hôte au port 80 du conteneur. Le service php utilise l'image PHP-FPM et monte le répertoire de code dans le conteneur. Le service db utilise la mise en miroir MariaDB et le nom d'utilisateur, le mot de passe et le répertoire de stockage des données de la base de données sont définis.
nginx.conf :
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; location / { root /var/www/html; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass php:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log"; } } }
php.ini :
date.timezone = Asia/Shanghai upload_max_filesize = 2M post_max_size = 8M memory_limit = 128M
Dans l'exemple ci-dessus, nginx.conf configure le port d'écoute et les règles de proxy de Nginx pour transmettre les requêtes dynamiques au service php. php.ini configure certains paramètres PHP courants, tels que le fuseau horaire et les restrictions de téléchargement de fichiers.
$ docker-compose up -d
Après avoir exécuté cette commande, Docker téléchargera et démarrera automatiquement le conteneur en fonction du fichier de configuration. Vous pouvez utiliser la commande docker-compose ps
pour afficher les conteneurs en cours d'exécution.
Ce qui précède n'est qu'un exemple simple, la situation réelle peut être plus complexe et les lecteurs peuvent effectuer les ajustements et les extensions appropriés en fonction de leurs propres besoins. J’espère que cet article pourra aider les lecteurs !
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!