Capítulo 7 · 7.4
WordPress en Docker
¿Desea ejecutar WordPress en su VPS en lugar de en un plan de hosting? Con Docker, WordPress y una base de datos funcionan uno al lado del otro, y Caddy se encarga de https.
Consejo: En un plan de hosting, WebOké se ocupa por usted del servidor, de las actualizaciones de PHP y de las copias de seguridad. Elija el VPS si realmente necesita esa libertad.
Cada receta parte de la carpeta de trabajo /srv/diensten con Caddy de Su carpeta de trabajo con compose.yaml, .env y Caddy. Usted añade un servicio a compose.yaml, un bloque al Caddyfile y un registro A y AAAA para el nombre (consulte Un registro A y AAAA en Mis dominios).
1. DNS
Haga que example.com y www.example.com apunten a su VPS con un registro A y AAAA. Si su sitio todavía funciona en otro lugar, hágalo solo cuando el nuevo sitio esté listo.
2. Una contraseña de base de datos en .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Coloque el resultado en .env como WP_DB_WACHTWOORD=....
3. compose.yaml
wordpress:
image: wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: wp-db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${WP_DB_WACHTWOORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
depends_on:
- wp-db
wp-db:
image: mariadb:11.8
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: ${WP_DB_WACHTWOORD}
MARIADB_RANDOM_ROOT_PASSWORD: "1"
volumes:
- wp-db:/var/lib/mysql
Y bajo volumes::
wordpress:
wp-db:
La base de datos no recibe ports:: WordPress la encuentra por el nombre wp-db (consulte Docker y el cortafuegos: publicar puertos de forma segura).
4. Caddyfile
example.com, www.example.com {
reverse_proxy wordpress:80
}
anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Abra https://example.com y complete enseguida la instalación de WordPress. La imagen de WordPress detecta que se encuentra detrás de un proxy https.
Actualizar
- WordPress, los plugins y los temas se actualizan desde el escritorio de WordPress, como siempre. Se encuentran en el volumen
wordpress. - PHP y el servidor web están incluidos en la imagen. Se actualizan con
docker compose pullyup -d(consulte Actualizar contenedores, hacer limpieza y limitar los logs).
Correo y copia de seguridad
WordPress envía correos (contraseña olvidada, formularios). Como el puerto 25 está cerrado, utilice un plugin SMTP con un buzón en el puerto 587 (consulte DNS inverso y envío de correo desde su VPS). Para su copia de seguridad necesita dos cosas: un volcado de la base de datos y el volumen wordpress con sus archivos subidos. Consulte Cómo incluir correctamente las bases de datos y los volúmenes de Docker.
Encontrará más información sobre WordPress en sí, como plugins y seguridad, en el curso de WordPress.
