# Instalar Wordpress

#### Guía oficial

[wordpress - Official Image | Docker Hub](https://hub.docker.com/_/wordpress)

## Requisitos

- [Docker Engine](https://wiki.pablomp.es/books/docker-engine/page/instalar-docker-engine "Instalar Docker Engine")
- [Nginx proxy manager](https://wiki.pablomp.es/books/nginx-proxy-manager/page/instalar-nginx-proxy-manager "Instalar nginx proxy manager")
- Un dominio/subdominio

## Instalación

Crear una carpeta para almacenar el contenedor de Docker `mkdir -p docker/wordpress`, dentro de esta carpeta creamos un archivo llamado `docker-compose.yml` con:

```bash
services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:
```

Una vez creado ejecutar:

```bash
docker compose up -d
```

Cuando el contenedor este iniciado accedemos con `IP_de_la_maquina:8080`.

## Solucionar: Error “*Ha fallado la publicación. Probablemente estás desconectado*”   


Ir al backend de WordPress a Ajustes-&gt; Generales. Y ahí comprobar añadir a los campos Dirección de WordPress (URL) Dirección del sitio (URL) https.

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/Fgrimage.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/Fgrimage.png)

[![image.png](https://wiki.pablomp.es/uploads/images/gallery/2024-08/scaled-1680-/jbvimage.png)](https://wiki.pablomp.es/uploads/images/gallery/2024-08/jbvimage.png)

## Solucionar: Error “*Too many redirects*”

El error "Too many redirects" se produce si utilizas Cloudflare.

Para solucionarlos iniciamos sesión como root y vamos a la ruta `/var/lib/docker/volumes/nombre-del-contenedor_wordpress/_data` y editamos el archivo wp-config.php. Tenemos que añadir lo siguiente `$_SERVER['HTTPS'] = 'on';` después de:

`/* Add any custom values between this line and the "stop editing" line. */`

Así quedaría:

```php
/* Add any custom values between this line and the "stop editing" line. */

$_SERVER['HTTPS'] = 'on';

// If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact
// see also https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
```