diff --git a/README.md b/README.md index 836ad31..f599618 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,41 @@ Y dos volumenes: ## WP-CONFIG : Configuración de Wordpress ## -Editar correctamente los datos de la base de datos en el wp-config.php situado en **php-fmp** +Los ficheros de configuración de Wordpress los podemos encontrar en **php-fpm/wordpress_files** + +Editar correctamente los datos de la base de datos en el **wp-config.php** + +En la carpeta **wordpress_files** también están los plugins y themes seleccionados para ser usados en la nube. + +## BUILDEAR LAS IMAGENES ## + +``` + $ docker-compose build +``` + +Esto construye las tres imágenes y los volumenes + +## INICIAR LOS CONTENEDORES ## + +``` + $ docker-compose up -d +``` + +Y revisamos que todo esté funcionando correctamente + +``` + $ docker ps +``` + +Con esto iniciamos los tres containers y ya podemos trabajar sobre sus volumenes. + +Para finalizar, deberemos reconfigurar el proxypass de **labo03** para que apunte a **txirbilenea** al puerto **8085** que es el puerto expuesto en el docker-compose para el acceso al NGINX. + +## MIGRAR ARCHIVOS DE LA VIEJA INSTALACION ## + +Copiar la carpeta **blogs.dir** y **uploads** al volumen **data** del contenedor **php-fpm** + +El volumen **data** lo puedes encontrar en **/var/lib/docker/volumes/wordpress_data/_data/** ## CREACIÓN DE BASE DE DATOS ## @@ -39,14 +73,27 @@ Con los datos de wp-config.php debermos crear la base de datos en nuestro contai $ exit ``` -## MIGRACIÓN ## +## MIGRACIÓN DE LA VIEJA BASE DE DATOS## -Deberemos copiar los archivos de wp-content (plugins/themes/files) de la vieja instalación al nuevo volumen. -Deberemos hacer un **mysqldump** de la base de datos vieja e importarlos en nuestro nuevo container de base de datos **wordpress** a través de un **docker exec -it sd_wp_db mysql -u root -p wordpress < database_vieja.sql** +Deberemos hacer un **mysqldump** de la base de datos vieja e importarlos en nuestro nuevo container de base de datos **wordpress** a través de: -Para finalizar, deberemos reconfigurar el proxypass de **labo03** para que apunte a **txirbilenea** al puerto **8085** que es el puerto expuesto en el docker-compose para el acceso al NGINX. +``` + $ docker exec -it sd_wp_db mysql -u root -p wordpress < database_vieja.sql +``` -## TODO ## +## WP-CLI ## -Configurar el **wp-cli** en la maquina de **php-fpm** para automatizar la actualización de plugins/themes/core de Wordpress. +**WP-cli** es una herramienta para automatizar tareas en **Wordpress** + +Está instalado en el container **php-fpm** + +Para ejecutarlo: + +``` + $ docker exec -it sd_wp_php runuser -u wordpress -- /sindominio/wp core update --all --path="/sindominio/wordpress/" + $ docker exec -it sd_wp_php runuser -u wordpress -- /sindominio/wp plugin update --all --path="/sindominio/wordpress/" + $ docker exec -it sd_wp_php runuser -u wordpress -- /sindominio/wp theme update --all --path="/sindominio/wordpress/" +``` + +Habría que añadrilo al cron.daily diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2637809..fe54709 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -3,10 +3,10 @@ FROM registry.sindominio.net/debian RUN apt-get update && \ apt-get -qy install \ php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip \ - ghostscript wget curl openssl && \ + ghostscript wget sudo curl openssl && \ apt-get clean -RUN useradd -lMs /sbin/nologin wordpress +RUN useradd wordpress COPY wordpress.conf /etc/php/7.3/fpm/pool.d/www.conf @@ -15,16 +15,29 @@ RUN mkdir logs WORKDIR sindominio +RUN chown wordpress:wordpress /sindominio + +USER wordpress RUN wget -O wordpress.tar.gz "https://wordpress.org/latest.tar.gz" RUN tar -xzf wordpress.tar.gz RUN rm wordpress.tar.gz -ADD wp-config.php /sindominio/wordpress/wp-config.php -RUN chown -R wordpress:wordpress /sindominio/wordpress +ADD wordpress_files/wp-config.php /sindominio/wordpress/wp-config.php +ADD wordpress_files/themes/ /sindominio/wordpress/wp-content/themes/ +ADD wordpress_files/plugins/ /sindominio/wordpress/wp-content/plugins/ +ADD wordpress_files/sunrise.php /sindominio/wordpress/wp-content/sunrise.php +#RUN chown -R wordpress:wordpress /sindominio/wordpress RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar RUN chmod +x wp-cli.phar -RUN mv wp-cli.phar /usr/local/bin/wp +RUN mv wp-cli.phar wp + +## ESTO EN UN CRON DAILY +#RUN ./wp theme update --all --path="/sindominio/wordpress/" +#RUN ./wp plugin update --all --path="/sindominio/wordpress/" +#RUN ./wp core update --all --path="/sindominio/wordpress/" + +USER root EXPOSE 9000 VOLUME /sindominio/ diff --git a/php-fpm/wp-config.php b/php-fpm/wp-config.php deleted file mode 100644 index 6d19c65..0000000 --- a/php-fpm/wp-config.php +++ /dev/null @@ -1,58 +0,0 @@ -,|E7)C(:8v'); -define('LOGGED_IN_SALT', 'x&2H?)-BUUQlVmOF0$7Mdi]l@!l$sei=mHPSAwO)|El- :?=J-_hP$B^2(+jN]^i'); -define('NONCE_SALT', 'pt|N-?XvTdoRvA)cO`WC|lao[&zLVE^C4)V6?@bnv]BaF36_ss+WDQvU!cdFG$f.'); - -$table_prefix = 'wp_'; - -define ('WPLANG', 'es_ES'); - -define( 'WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] ); -define( 'WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] ); -define('WP_ALLOW_MULTISITE', true); //activa el menu de network - -define( 'MULTISITE', true ); -define( 'SUBDOMAIN_INSTALL', false ); // Blogs NO en subdominios sino en subpcarpetas -$base = '/'; // Carpeta base. La raiz del dominio de instalacion (o subdominio), si no es barra no funciona el plugin domain-mapping -define( 'DOMAIN_CURRENT_SITE', 'wp.sindominio.net' ); // dominio/subdominio principal. -define( 'PATH_CURRENT_SITE', '/' ); -define( 'SITE_ID_CURRENT_SITE', 1 ); -define( 'BLOG_ID_CURRENT_SITE', 1 ); - -define( 'SUNRISE', 'on' ); - -define ( 'FORCE_SSL_ADMIN', true); - -if ($_SERVER['HTTP_X_FORWARD_PROTO'] == 'https') - $_SERVER['HTTPS']='on'; - -define('WP_FAIL2BAN_LOG_PINGBACKS',true); - -define('DISALLOW_FILE_EDIT',true); - -define('WP_MEMORY_LIMIT', '512M'); -define( 'EMPTY_TRASH_DAYS', 0 ); - -/* ¡Eso es todo, deja de editar! Feliz blogging */ - -/** WordPress absolute path to the Wordpress directory. */ -if ( !defined('ABSPATH') ) - define('ABSPATH', dirname(__FILE__) . '/'); - -/** Sets up WordPress vars and included files. */ -require_once(ABSPATH . 'wp-settings.php'); -?> -