GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Dockerización de Wordpress con Nginx y PHP-FPM en Ubuntu 16.04

Docker-Compose es una herramienta de línea de comandos para definir y administrar contenedores docker de múltiples contenedores como si fueran un solo servicio. Compose está escrito en python y se puede instalar con el comando pip de Python. Con componer, podemos ejecutar varios contenedores docker con un solo comando. Le permite crear un contenedor como servicio, excelente para su entorno de desarrollo, prueba y preparación.

En este tutorial, lo guiaré paso a paso para usar docker-compose. Implementaremos 'Wordpress ' con Nginx, MySQL y PHP-FPM. Cada servicio tiene su propio contenedor y usaremos imágenes del registro del concentrador docker. Le mostraré cómo crear contenedores a partir de imágenes docker y administrar todos los contenedores con docker-compose.

Requisito previo

  • Ubuntu 16.04
  • Privilegios de raíz

Paso 1:instalar Docker

Comenzaremos desde cero, instalando docker y docker compose manualmente con el comando apt.

Antes de comenzar, actualice el repositorio de Ubuntu e instale las últimas actualizaciones:

sudo apt-get update
sudo apt-get upgrade

De forma predeterminada, Docker está disponible en el repositorio de Ubuntu, por lo que podemos continuar instalándolo de inmediato:

sudo apt-get install -y docker.io

Cuando finalice la instalación, inicie la ventana acoplable y agréguela para que se inicie automáticamente en el momento del arranque:

systemctl start docker
systemctl enable docker

Ahora pruebe la instalación de su ventana acoplable con el siguiente comando:

docker run hello-world

Verás hello-world desde la ventana acoplable.

Paso 2:instalar Docker-Compose

Docker-compose es un script escrito en python, está disponible en el repositorio PyPI python y se puede instalar con python pip. Entonces, primero debemos instalar python y python pip en nuestro sistema.

Instale python y python-pip:

sudo apt-get install -y python python-pip

A continuación, instale docker-compose con el comando pip:

pip install docker-compose

espere a que termine el proceso de instalación. Luego verifique la instalación con el comando docker-compose:

docker-compose -v

Obtendrá la versión docker-compose.

Paso 3 - Configurar Wordpress

Ahora, docker y docker-compose están instalados en el sistema. En este paso, le mostraremos cómo crear y configurar el entorno docker-compose para nuestro proyecto de WordPress.

Implementaremos la aplicación PHP 'Wordpress' con Nginx como servidor web y MariaDB para la base de datos MySQL como contenedores docker administrados por docker-compose. Cada aplicación (Wordpress, Nginx y MySQL) se ejecutará en su propio contenedor, puede ver la lista a continuación:

- Nginx :Usamos la imagen oficial de la ventana acoplable, última versión 'nginx:más reciente'.

- Wordpress :Wordpress proporciona algunas imágenes de docker en docker-hub, y usaremos WordPress 4.7 con PHP-FPM 7.0.

- MySQL :Usaremos el contenedor oficial de MariaDB, última versión.

Por lo tanto, necesitamos 3 imágenes de la ventana acoplable del registro del concentrador de la ventana acoplable.

No ejecutaremos docker como root, usaremos el usuario normal de Linux. Así que simplemente cree un nuevo usuario con el comando a continuación (siéntase libre de usar un nombre de usuario diferente aquí, solo asegúrese de que el usuario aún no exista. Si elige un nombre diferente, asegúrese de cambiarlo en todos los comandos que siguen en este tutorial):/P>

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

Ahora agregue el usuario a la 'docker ' grupo para que el usuario pueda usar el comando docker y reiniciar el servicio docker:

usermod -a -G docker hakase
systemctl restart docker

Inicie sesión con el usuario 'hakase' y cree un nuevo directorio para el proyecto de WordPress:

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

A continuación, cree un nuevo archivo llamado 'docker-compose.yml ', y crea un nuevo directorio para el proyecto. Simplemente escriba los comandos a continuación:

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

Lista de archivos y directorios del proyecto:

- docker-compose.yml :Este es el archivo de configuración de docker-compose, debe crearlo al iniciar un nuevo proyecto de docker-compose.

- nginx/ :este directorio se usa para nuestra configuración adicional de nginx, como el host virtual, etc.

- datos de base de datos/ :El volumen/directorio para los datos mysql. El sql de los datos '/var/lib/mysql' está montado en el directorio db-data.

- registros/ :Directorio para registro de aplicaciones, nginx, mariadb y php-fpm.

- wordpress/: Todos los archivos de wordpress estarán disponibles en ese directorio.

En el directorio 'nginx', cree un nuevo archivo de configuración para nuestro host virtual de wordpress.

Crea un nuevo archivo wordpress.conf:

vim nginx/wordpress.conf

Pegue la configuración a continuación:

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

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

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

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

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Guarde el archivo y salga de vim.

Paso 4:configurar Docker-Compose

En este paso, comenzaremos a editar el archivo docker-compose.yml. Cuando desee iniciar el proyecto docker-compose, asegúrese de crear primero el archivo docker-compose.yml como lo hacemos a continuación.

Edite docker-compose.yml con vim:

vim docker-compose.yml

Defina sus servicios, en la primera línea definiremos Nginx. Estamos utilizando la imagen acoplable oficial de Nginx, la última versión, y configuramos la asignación de puertos para el puerto 80 en el contenedor al puerto 80 en el host. A continuación, configure los volúmenes de la ventana acoplable, el volumen para nuestra configuración de host virtual Nginx, el volumen para los archivos de registro de Nginx y el volumen del directorio raíz web '/var/www/html'. El contenedor de Nginx está vinculado al contenedor de WordPress.

Pegue la configuración a continuación:

nginx:
    image: nginx:latest
    ports:
        - '80:80'
    volumes:
        - ./nginx:/etc/nginx/conf.d
        - ./logs/nginx:/var/log/nginx
        - ./wordpress:/var/www/html
    links:
        - wordpress
    restart: always

A continuación, defina el servidor MySQL. Estamos usando la imagen de MariaDB, última versión. Configure la asignación de puertos para el contenedor en el puerto 3306 y configure la contraseña raíz de MySQL con la variable de entorno 'MYSQL_ROOT_PASSWORD'. Finalmente, configure el volumen del contenedor para el directorio de datos de MySQL.

Pegue la configuración a continuación:

mysql:
    image: mariadb
    ports:
        - '3306:3306'
    volumes:
        - ./db-data:/var/lib/mysql
    environment:
        - MYSQL_ROOT_PASSWORD=aqwe123
    restart: always

Luego configuraremos el servicio de WordPress usando la imagen acoplable de WordPress 4.7 con PHP-FPM 7.0 instalado. Configure el puerto para PHP-fpm en el puerto 9000, habilite el volumen acoplable para el directorio web '/var/www/html' en el directorio host 'wordpress', configure la base de datos definiendo la variable de entorno de WordPress y vincule el servicio de WordPress a mysql.

Pegue la configuración a continuación:

wordpress:
    image: wordpress:4.7.1-php7.0-fpm
    ports:
        - '9000:9000'
    volumes:
        - ./wordpress:/var/www/html
    environment:
        - WORDPRESS_DB_NAME=wpdb
        - WORDPRESS_TABLE_PREFIX=wp_
        - WORDPRESS_DB_HOST=mysql
        - WORDPRESS_DB_PASSWORD=aqwe123
    links:
        - mysql
    restart: always

Después de agregar las tres partes en el archivo docker-compose.yml, guarde el archivo y salga del editor vim.

Nuestra configuración docker-compose está lista.

Paso 5:ejecutar Docker-compose

Comience a crear los nuevos contenedores con docker compose. Vaya al directorio wordpress-compose e inicie los nuevos contenedores basados ​​en nuestro archivo de composición.

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

Puede ver los resultados del comando. Se crearon tres contenedores. Verifiquemos el estado del contenedor con la opción ps:

docker-compose ps

A continuación se muestra el resultado:

Si desea ver la salida del registro del contenedor, puede usar los siguientes comandos:

docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpress

Registros del contenedor:

Nota :
Si ve en el registro del contenedor de WordPress un error sobre el rechazo de la conexión MySQL, ignórelo.

Paso 6 - Instalar Wordpress

Antes de realizar este paso, verifiquemos los puertos disponibles/puertos abiertos en el sistema. Asegúrate de tener 3 puertos abiertos, puerto 80, 3306 y puerto 9000.

netstat -plntu

Los resultados están a continuación:

Ahora abra su navegador web y escriba la URL del servidor o la dirección IP.

http://IP del servidor/

Puedes ver la página de instalación de WordPress. Elija su idioma y haga clic en 'Continuar '.

Complete los detalles de su sitio web, como el título del sitio, el usuario administrador y la contraseña, su dirección de correo electrónico y luego haga clic en 'Instalar Wordpress '.

Será redirigido al 'Panel de administración de WordPress '.

Y esta es mi publicación de muestra de WordPress hola mundo.

Wordpress se ha instalado con docker-compose.

Paso 7:Acceso al contenedor Docker

Este es un paso adicional sobre cómo acceder a un contenedor con docker-compose. Verifique que todos los contenedores estén disponibles y muestre su estado:

docker-compose ps

Ya tenemos 3 contenedores, ahora podemos intentar iniciar sesión en cada contenedor. Inicie sesión en el primer contenedor de Nginx con el comando docker-compose.

docker-compose exec nginx bash

nginx :nombre del servicio en el archivo docker-compose docker-compose.yml

bash :ejecuta el comando bash shell

Ahora revise nuestra configuración de host virtual de WordPress.

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

Los archivos están disponibles en el contenedor.

A continuación, intente iniciar sesión en el contenedor mysql y luego inicie sesión en el shell mysql con nuestra contraseña en el archivo de redacción.

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

Ver la lista de bases de datos:

show databases;

Verá nuestra base de datos de WordPress.

En el contenedor 'wordpress', verá todos los archivos de WordPress.

docker-compose exec wordpress bash
ls -lah

Todos los contenedores son accesibles.


Ubuntu
  1. Ubuntu 20.04:instalación de WordPress con Nginx

  2. Cómo instalar WordPress con Docker en Ubuntu

  3. Instale Prosper202 con Nginx, MySQL y PHP-FPM en Ubuntu

  4. Instalar WordPress con Varnish y Nginx en Ubuntu

  5. Instalar WordPress con Memcached y Nginx en Ubuntu

Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL (LEMP) en Ubuntu 12.04 LTS

Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL (LEMP) en Ubuntu 13.04

Cómo Instalar Wordpress con Nginx, MariaDB y HHVM en Ubuntu 15.04

Cómo instalar WordPress 5.x con Nginx en Ubuntu 18.04 / Ubuntu 16.04

Cómo instalar WordPress con Nginx en Ubuntu

Instalar WordPress con Nginx en Ubuntu 18.04