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.
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.
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.
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.
Seleccione su idioma y haga clic en «continuar» para continuar.
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,
¡¡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!