LINUX

Instale WordPress en Docker LEMP Stack con Letsencrypt SSL

WordPress es un software de código abierto que puede utilizar para crear su hermoso sitio web, blog o aplicación. Cientos de voluntarios de la comunidad han creado este software central. Y hay miles de complementos y temas disponibles para que esto transforme su sitio web en el de su imaginación.

En este artículo, estoy explicando cómo instalar WordPress en un contenedor Docker con pila LEMP y ejecutarlo de forma segura con SSL en mi servidor Ubuntu 16.04. Puede usar Docker Compose para ejecutar WordPress fácilmente en un entorno aislado creado con contenedores Docker.

Prerrequisitos

  • Docker instaló el servidor Ubuntu 16.04
  • Requerir un nombre de host FQDN
  • Certificado SSL para su nombre de host
  • Pila LEMP

Puede consultar mi artículo anterior para saber cómo instalé SSL para mi nombre de host usando el software Let’s Encrypt.

Creando WordPress Dockerfile

Necesitamos crear nuestro Dockerfile para automatizar nuestra instalación según nuestros requisitos. Este archivo de la ventana acoplable comprende una imagen de la ventana acoplable que instalará automáticamente wordpress, la pila LEMP y otros paquetes necesarios para nuestra aplicación. Aparte de eso, necesitamos copiar algunos de los volúmenes de nuestro host de la ventana acoplable para mejorar la seguridad del dominio con SSL y una configuración de vhost predefinida para nuestro nombre de host.

wordpressdockerfile

 

huahaiy/lemp-wordpress : This image will automate our wordpress installation with LEMP stack.
/srv:/srv : Configure SSH agents are per our image
conf : This folder contains our saved secured Nginx configuration
/etc/letsencrypt & /opt/letsencrypt contains our certificate details and letsencrypt scripts.
/var/lib/mysql : Determines the database location for our installation.

PS : We can exclude the volumes which we don't prefer to copy over as per our convenience.

Moreover, it exposes the ports 80 and 443 of docker container to the host's port 8081 and 8080 respectively.

Creando nuestro contenedor de WordPress

El archivo de la ventana acoplable anterior le dice a la ventana acoplable que ejecute un contenedor usando la imagen huahaiy / lemp-wordpress, monte los volúmenes especificados desde el host de la ventana acoplable y exponga los puertos para ejecutar la aplicación. Podemos ejecutar este comando para componer nuestro contenedor docker.

root@www:~# docker-compose up
Pulling lemp (huahaiy/lemp-wordpress:latest)...
latest: Pulling from huahaiy/lemp-wordpress
012a7829fd3f: Pull complete
41158247dd50: Pull complete
916b974d99af: Pull complete
a3ed95caeb02: Pull complete
1527345bbd21: Pull complete
1eb53890aa28: Pull complete
464ea636b922: Pull complete
8ba7392dc2a5: Pull complete
4cf87d5c765a: Pull complete
a9174a1a303a: Pull complete
d5c8e4f50350: Pull complete
Digest: sha256:8a92f263ca2095ddd4c8fe07c8d8306af2a16728f1e598897a8d62844f24352a
Status: Downloaded newer image for huahaiy/lemp-wordpress:latest
Creating root_lemp_1
Attaching to root_lemp_1
lemp_1 | % Total % Received % Xferd Average Speed Time Time Time Current
lemp_1 | Dload Upload Total Spent Left Speed
100 7591k 100 7591k 0 0 5441k 0 0:00:01 0:00:01 --:--:-- 5441k
lemp_1 | wordpress/
lemp_1 | wordpress/wp-settings.php
lemp_1 | wordpress/wp-cron.php
lemp_1 | wordpress/wp-comments-post.php
lemp_1 | wordpress/wp-activate.php
lemp_1 | wordpress/wp-admin/
lemp_1 | wordpress/wp-admin/link-parse-opml.php
lemp_1 | wordpress/wp-admin/js/

Al ejecutar este archivo de composición de la ventana acoplable, extraerá la imagen de la ventana acoplable especificada de nuestro concentrador de la ventana acoplable y descargará todos los paquetes necesarios para nuestra instalación. Esta imagen instalará WordPress en la pila LEMP. La pila LEMP es un grupo de software que se utiliza para servir nuestras aplicaciones web. Incluye Nginx con PHP y MySQL.

Etapas de instalación

Inicialmente, como dijimos antes, descarga todos los paquetes requeridos como se especifica en nuestra imagen de la ventana acoplable. Luego comienza con la instalación de la pila LEMP y extrae los archivos de WordPress descargados a la raíz del documento de dominio predeterminado en «/ usr / share / nginx / www /».

Durante la fase de instalación, establece la contraseña de root de MySQL y crea una base de datos llamada «wordpress» con el mismo usuario y establece su contraseña como se muestra para la instalación de WordPress.

finalwp-mysql

Finalmente, actualiza nuestro archivo de configuración de WordPress con estos detalles para mejorar la instalación de WordPress desde el navegador en el contenedor.

finalwp

Una vez que se completa la instalación, podemos verificar el estado de nuestro contenedor como se muestra a continuación.

root@www:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73e10f1c0b94 huahaiy/lemp-wordpress "/docker-entrypoint.s" 21 hours ago Up 9 minutes 3306/tcp, 0.0.0.0:8081->80/tcp, 0.0.0.0:8080->443/tcp root_lemp_1

Confirmar las Instalaciones

Ahora podemos iniciar sesión en nuestro contenedor y confirmar las instalaciones del software.

root@73e10f1c0b94:/# nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
root@226485fa2d44:/# service nginx status
* nginx is running
root@73e10f1c0b94:/# php -v
PHP 5.5.9-1ubuntu4.13 (cli) (built: Sep 29 2015 15:24:49)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
root@73e10f1c0b94:/# mysql -V
mysql Ver 14.14 Distrib 5.5.44, for debian-linux-gnu (x86_64) using readline 6.3

Necesitamos habilitar Nginx para ejecutar scripts PHP de forma predeterminada. Echemos un vistazo a la configuración de Vhost para mi dominio para habilitar mi SSL y PHP.

server {
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;

server_name nodenixbox.com www.nodenixbox.com;
root /usr/share/nginx/www;
ssl_certificate /etc/letsencrypt/live/nodenixbox.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nodenixbox.com/privkey.pem;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

Instalación de WordPress

Nuestro archivo de composición de la ventana acoplable acaba de crear un contenedor de la ventana acoplable con los archivos de instalación de WordPress descargados en la raíz del documento de nuestro dominio y ha configurado la plataforma necesaria para ejecutar nuestras instalaciones. Ahora tenemos que completar nuestra instalación a través de la interfaz web de forma segura. Puede acceder a su blog de WordPress en https: // Nombre de host de Docker: 8080 /. Esto lo redireccionará a nuestra carpeta de instalación de WordPress.

wordpressin

Seleccione su idioma y haga clic en «continuar» para continuar.

installwp1

Podemos proporcionar los detalles requeridos aquí como se muestra en la instantánea y continuar con la opción «Instalar WordPress». Esto completará nuestra instalación y podremos iniciar sesión en nuestro Panel de administración de WordPress con las credenciales,

adminwp

¡¡Viva!! Nuestro contenedor de WordPress Docker está listo para funcionar. Espero que este artículo te sea realmente útil. Gracias por leer esto 🙂 Recomendaría sus valiosos comentarios y sugerencias al respecto. ¡Que tenga un buen día!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar