GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Dockeriser Wordpress avec Nginx et PHP-FPM sur Ubuntu 16.04

Docker Compose est un outil en ligne de commande permettant de définir et de gérer des conteneurs Docker multi-conteneurs comme s'il s'agissait d'un service unique. Compose est écrit en python et peut être installé avec la commande Python pip. Avec compose, nous pouvons exécuter plusieurs conteneurs Docker avec une seule commande. Il vous permet de créer un conteneur en tant que service, idéal pour votre environnement de développement, de test et de préproduction.

Dans ce tutoriel, je vais vous guider étape par étape pour utiliser docker-compose. Nous allons déployer 'Wordpress ' avec Nginx, MySQL et PHP-FPM. Chaque service a son propre conteneur et nous utiliserons des images du registre Docker Hub. Je vais vous montrer comment créer des conteneurs à partir d'images docker et gérer tous les conteneurs avec docker-compose.

Prérequis

  • Ubuntu 16.04
  • Privilèges racine

Étape 1 - Installer Docker

Nous allons repartir de zéro, en installant docker et docker compose manuellement avec la commande apt.

Avant de commencer, mettez à jour le référentiel Ubuntu et installez les dernières mises à jour :

sudo apt-get update
sudo apt-get upgrade

Par défaut, docker est disponible dans le référentiel Ubuntu, nous pouvons donc continuer à l'installer immédiatement :

sudo apt-get install -y docker.io

Une fois l'installation terminée, démarrez docker et ajoutez-le pour qu'il démarre automatiquement au démarrage :

systemctl start docker
systemctl enable docker

Testez maintenant votre installation de docker avec la commande ci-dessous :

docker lance hello-world

Vous verrez hello-world depuis docker.

Étape 2 - Installer Docker-Compose

Docker-compose est un script écrit en python, il est disponible dans le référentiel python PyPI et peut être installé avec python pip. Nous devons donc d'abord installer python et python pip sur notre système.

Installez python et python-pip :

sudo apt-get install -y python python-pip

Ensuite, installez docker-compose avec la commande pip :

pip install docker-compose

attendez que le processus d'installation se termine. Vérifiez ensuite l'installation avec la commande docker-compose :

docker-compose -v

Vous obtiendrez la version docker-compose.

Étape 3 - Configurer Wordpress

Maintenant, docker et docker-compose sont installés sur le système. Dans cette étape, nous vous montrerons comment créer et configurer l'environnement docker-compose pour notre projet WordPress.

Nous allons déployer l'application PHP 'Wordpress' avec Nginx comme serveur web, et MariaDB pour la base de données MySQL comme conteneurs docker gérés par docker-compose. Chaque application (Wordpress, Nginx et MySQL) s'exécutera dans son propre conteneur, vous pouvez voir la liste ci-dessous :

- Nginx :Nous utilisons l'image docker officielle, dernière version 'nginx:latest'.

- Wordpress :Wordpress fournit des images docker sur docker-hub, et nous utiliserons WordPress 4.7 avec PHP-FPM 7.0 dessus.

- MySQL :Nous utiliserons le conteneur officiel MariaDB, dernière version.

Nous avons donc besoin de 3 images Docker du registre Docker Hub.

Nous n'exécuterons pas docker en tant que root, nous utiliserons un utilisateur Linux normal. Créez donc simplement un nouvel utilisateur avec la commande ci-dessous (n'hésitez pas à utiliser un nom d'utilisateur différent ici, assurez-vous simplement que l'utilisateur n'existe pas encore. Si vous choisissez un nom différent, assurez-vous de le changer dans toutes les commandes qui suivent dans ce tutoriel):

useradd -m -s /bin/bash hakase
passwd hakase

Ajoutez maintenant l'utilisateur au 'docker ' afin que l'utilisateur puisse utiliser la commande docker et redémarrer le service docker :

usermod -a -G docker hakase
systemctl restart docker

Connectez-vous à l'utilisateur 'hakase' et créez un nouveau répertoire pour le projet WordPress :

su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/

Ensuite, créez un nouveau fichier appelé 'docker-compose.yml ', et créez un nouveau répertoire pour le projet. Tapez simplement les commandes ci-dessous :

touchez docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/

Liste des fichiers et répertoires du projet :

- docker-compose.yml  :Il s'agit du fichier de configuration docker-compose, vous devez le créer lors du démarrage d'un nouveau projet docker-compose.

- nginx/  :Ce répertoire est utilisé pour notre configuration nginx supplémentaire comme l'hôte virtuel, etc.

- db-data/  :le volume/répertoire des données mysql. Le sql des données '/var/lib/mysql' est monté dans le répertoire db-data.

- journaux/ :Répertoire pour le journal des applications, nginx, mariadb et php-fpm.

- wordpress/ : Tous les fichiers wordpress seront disponibles dans ce répertoire.

Dans le répertoire 'nginx', créez un nouveau fichier de configuration pour notre hébergeur virtuel wordpress.

Créez un nouveau fichier wordpress.conf :

vim nginx/wordpress.conf

Collez la configuration ci-dessous :

server {
    listen 80 ;
    nom_serveur wp-hakase.co ;

    racine /var/www/html ;
    index index.php ;

    access_log /var/log/nginx/hakase-access.log ;
    error_log /var/log/nginx/hakase-error.log ;

    emplacement / {
        try_files $uri $uri/ /index.php?$args ;
    }

    emplacement ~ \.php$ {
        try_files $uri =404 ;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Enregistrez le fichier et quittez vim.

Étape 4 - Configurer Docker-Compose

Dans cette étape, nous allons commencer à éditer le fichier docker-compose.yml. Lorsque vous souhaitez démarrer le projet docker-compose, assurez-vous de créer d'abord le fichier docker-compose.yml comme nous le faisons ci-dessous.

Modifiez docker-compose.yml avec vim :

vim docker-compose.yml

Définissez vos services, sur la première ligne nous définirons Nginx. Nous utilisons l'image docker officielle de Nginx, la dernière version, et configurons le mappage de port pour le port 80 sur le conteneur vers le port 80 sur l'hôte. Ensuite, configurez les volumes docker, le volume pour notre configuration d'hôte virtuel Nginx, le volume pour les fichiers journaux Nginx et le volume du répertoire racine Web '/var/www/html'. Le conteneur Nginx est lié au conteneur WordPress.

Collez la configuration ci-dessous :

nginx :
    image :nginx:latest
    ports :
        - '80:80'
    volumes :
        - ./nginx :/etc/nginx/ conf.d
        - ./logs/nginx :/var/log/nginx
        - ./wordpress :/var/www/html
    liens :
        - wordpress
    redémarrer :toujours

Ensuite, définissez le serveur MySQL. Nous utilisons l'image MariaDB, dernière version. Configurez le mappage de port pour le conteneur sur le port 3306 et configurez le mot de passe racine MySQL avec la variable d'environnement « MYSQL_ROOT_PASSWORD ». Enfin, configurez le volume du conteneur pour le répertoire de données MySQL.

Collez la configuration ci-dessous :

mysql :
    image :mariadb
    ports :
        - '3306:3306'
    volumes :
        - ./db-data :/var/lib/ environnement mysql
    :
        - MYSQL_ROOT_PASSWORD=aqwe123
    redémarrage :toujours

Ensuite, nous configurerons le service WordPress en utilisant l'image docker WordPress 4.7 avec PHP-FPM 7.0 installé. Configurez le port pour PHP-fpm sur le port 9000, activez le volume docker pour le répertoire Web '/var/www/html' dans le répertoire hôte 'wordpress', configurez la base de données en définissant la variable d'environnement WordPress et liez le service WordPress à mysql.

Collez la configuration ci-dessous :

wordpress :
    image :wordpress:4.7.1-php7.0-fpm
    ports :
        -         - '9000:9000'
    volumes :
        - . /wordpress :/var/www/html
    environnement :
        - WORDPRESS_DB_NAME=wpdb
        - WORDPRESS_TABLE_PREFIX=wp_
        - WORDPRESS_DB_HOST=mysql
        - WORDPRESS_DB_PASSWORD=aqwe123
    liens :
        - mysql
    redémarrage :toujours

Après avoir ajouté les trois parties dans le fichier docker-compose.yml, enregistrez le fichier et quittez l'éditeur vim.

Notre configuration docker-compose est prête.

Étape 5 - Exécuter Docker-compose

Commencez à créer les nouveaux conteneurs avec docker compose. Accédez au répertoire wordpress-compose et démarrez les nouveaux conteneurs basés sur notre fichier de composition.

cd ~/wordpress-compose/
docker-compose up -d

Vous pouvez voir les résultats de la commande. Trois conteneurs ont été créés. Vérifions le statut du conteneur avec l'option ps :

docker-composer ps

Ci-dessous le résultat :

Si vous souhaitez voir la sortie du journal du conteneur, vous pouvez utiliser les commandes ci-dessous :

journaux docker-compose nginx
journaux docker-compose mysql
journaux docker-compose wordpress

Journaux de conteneur :

Remarque :
Si vous voyez dans le journal du conteneur WordPress une erreur de connexion MySQL refusée, ignorez-la.

Étape 6 - Installer Wordpress

Avant de faire cette étape, vérifions les ports disponibles/ouverts sur le système. Assurez-vous d'avoir 3 ports ouverts, le port 80, 3306 et le port 9000.

netstat -plntu

Les résultats sont ci-dessous :

Ouvrez maintenant votre navigateur Web et saisissez l'URL ou l'adresse IP du serveur.

http://serverIP/

Vous pouvez voir la page d'installation de WordPress. Choisissez votre langue et cliquez sur 'Continuer '.

Remplissez les détails de votre site Web comme le titre du site, l'utilisateur administrateur et le mot de passe, votre adresse e-mail, puis cliquez sur 'Installer Wordpress '.

Vous serez redirigé vers le 'tableau de bord d'administration WordPress '.

Et ceci est mon exemple WordPress post hello world.

Wordpress a été installé avec docker-compose.

Étape 7 - Accéder au conteneur Docker

Il s'agit d'une étape supplémentaire pour accéder à un conteneur avec docker-compose. Vérifiez que tous les conteneurs sont disponibles et affichez leur statut :

docker-composer ps

Nous avons déjà 3 conteneurs, maintenant nous pouvons essayer de nous connecter à chaque conteneur. Connectez-vous au premier conteneur Nginx avec la commande docker-compose.

docker-compose exec nginx bash

nginx :nom du service sur le fichier docker-compose docker-compose.yml

bash :exécutez la commande shell bash

Vérifiez maintenant la configuration de notre hôte virtuel WordPress.

cat /etc/nginx/conf.d/wordpress.conf

Les fichiers sont disponibles dans le conteneur.

Ensuite, essayez de vous connecter au conteneur mysql, puis connectez-vous au shell mysql avec notre mot de passe sur le fichier de composition.

docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORD

Voir la liste des bases de données :

afficher les bases de données ;

Vous verrez notre base de données WordPress.

Dans le conteneur 'wordpress', vous verrez tous les fichiers WordPress.

docker-compose exec wordpress bash
ls -lah

Tous les conteneurs sont accessibles.


Ubuntu
  1. Ubuntu 20.04 :WordPress avec l'installation de Nginx

  2. Comment installer WordPress avec Docker sur Ubuntu

  3. Installez Prosper202 avec Nginx, MySQL et PHP-FPM sur Ubuntu

  4. Installer WordPress avec Varnish et Nginx sur Ubuntu

  5. Installer WordPress avec Memcached et Nginx sur Ubuntu

Installation de Nginx avec PHP5 (et PHP-FPM) et le support MySQL (LEMP) sur Ubuntu 12.04 LTS

Installation de Nginx avec PHP5 (et PHP-FPM) et le support MySQL (LEMP) sur Ubuntu 13.04

Comment installer Wordpress avec Nginx, MariaDB et HHVM dans Ubuntu 15.04

Comment installer WordPress 5.x avec Nginx sur Ubuntu 18.04 / Ubuntu 16.04

Comment installer WordPress avec Nginx sur Ubuntu

Installer WordPress avec Nginx sur Ubuntu 18.04