Nginx para Drupal | Archivo de configuración para el dominio.
Si estás instalando Drupal, en un servidor VPS con Nginx, este es el archivo completo que deberías utilizar, para Drupal 10
Si estás instalando Drupal, en un servidor VPS con Nginx, este es el archivo completo que deberías utilizar, para Drupal 10
Si haz decidido dedicarte profesionalmente al desarrollo de aplicaciones web, lo ideal es que comiences a experimentar con las herramientas y opciones más actuales que existen en el mercado. Una de mis recomendaciones es el uso de contenedores Docker, que nos permitirá configurar, replicar y/o compartir, entornos de trabajo, evitando los históricos fallos de versión del lenguaje, o del servidor con el que estemos trabajando en nuestros proyectos.
En el caso de Drupal, no basta con añadir un archivo Dockerfile, para contar con todos los requerimientos necesarios, pero ya existen varias alternativas disponibles, facilitándonos esa parte del proceso. Una de ellas es la conocida como Docker4Drupal, cuyo mantenimiento continuo y permanente, nos permite realizar las instalaciones de Drupal, en cada nueva versión publicada.
Docker4Drupal, tiene múltiples funcionalidades, que podremos activar, personalizar y utilizar, dependiendo de las necesidades del proyecto, como son el administrador de base de datos Adminer, Xdebug, servidor para correos locales Mailhog, servidor de base de datos Postgres, servidor Apache Solr, entre otros.
Además de utilizar las variables de entorno, que nos pueden servir para realizar comprobaciones sobre el comportamiento de nuestras aplicaciones, sin la necesidad de realizar despliegues en otros entornos adicionales a nuestro local.
Aunque no profundizaremos en todas las opciones y configuraciones disponibles con Docker4Drupal, te animo a que visites su página oficial https://github.com/wodby/docker4drupal y eches un vistazo a su documentación, para que conozcas un poco más acerca de todo lo que tiene para ofrecernos.
- Entorno Linux: Yo he utilizado el subsistema WSL2, con Ubuntu 2204, dentro de una máquina Windows 11. HAZ CLIC AQUI
- Docker Desktop: Para las instrucciones desde su página oficial. HAZ CLIC AQUI
Para este curso, utilizaremos Docker4Drupal, dentro de un entorno Linux (Ubuntu 2204), con WSL2 y Windows 11, de esta manera no tendremos que configurar máquinas virtuales adicionales, que podrían consumir muchos más recursos de los necesarios en nuestra máquina. Aunque si lo deseas, también puedes aplicar los mismos pasos en la distribución de Linux que prefieras.
Si quieres reproducir exactamente los ejercicios que vamos a detallar en este curso, sólo necesitarás descargar y configurar DockerDesktop y WSL2 en tu ordenador y a continuación, abrir la consola para continuar con el resto de la instalación que verás en el video.
Ahora que ya tienes configurado el entorno Linux donde vas a trabajar, abriremos nuestra consola y nos colocaremos en la ubicación donde instalaremos nuestro Drupal 10, a continuación, abriremos la url del respositorio de Docker4Drupal y lo clonaremos, para comenzar con la descarga de los archivos que vamos a necesitar.
Si quieres, puedes aprovechar el proceso de clonación para configurar el nombre de tu carpeta, al mismo tiempo que realiza la descarga, para ello, tendrás que añadir una línea como la siguiente:
git clone https://github.com/wodby/docker4drupal.git/ drupal_10
Esto creará la carpeta con el nombre drupal_10 en la ubicación que hayas seleccionado y dentro de ella colocará todos los archivos descargados desde el repositorio, donde podremos continuar con otros cambios necesarios, antes de descargar el esqueleto o estructura principal de nuestro proyecto de Drupal.
Una vez terminada la descarga de los archivos para nuestro servidor, el siguiente paso será la personalización de algunas opciones, para que podamos descargar, arrancar y acceder a nuestro proyecto de Drupal, que descargaremos, una vez terminados estos primeros cambios.
Así que, con nuestro IDE favorito, abriremos la carpeta donde hemos descargado los archivos del repositorio, para comenzar con las primeras configuraciones.
Eliminaremos el archivo docker-compose.override.yml, para que podamos controlar el comportamiento del servidor a través de la configuración en la variable de entorno.
Por el momento, el archivo que necesitamos conocer y ajustar es el responsable de nuestro entorno de trabajo, conocido como .env, donde podremos personalizar los siguientes detalles:
Cuando hayamos realizado el cambio en la url del proyecto y el puerto, podremos acceder a nuestro Drupal, una vez descargado, escribiendo en el navegador
http://drupal.docker.localhost:8000
Un servidor basado Docker que ejecuta varios contenedores, conectados entre sí, que permiten ejecutar nuestro código sin la necesidad de instalar ningún archivo extra en nuestra máquina, esto es lo que se conoce como virtualización del entorno.
En otra palabras, en lugar de arrancar un servidor tipo XAMPP, con todo incluido y administrable desde un panel de control, como hacíamos años atrás, con Docker, tendremos varios servicios independientes, que podremos modificar y/o ajustar, según nuestras necesidades.
Si exploras un poco más, dentro del archivo .env, que modificamos hace un momento, podrás comprobar que tienes varias opciones de versión y configuración, que podrás activar o desacticar, añadiendo o quitando, el símbolo de almohadilla (#), que acompaña cada una de las definiciones:
### --- MARIADB ---- MARIADB_TAG=10.11-3.26.3 #MARIADB_TAG=11.0-3.26.3 #MARIADB_TAG=10.10-3.26.3 #MARIADB_TAG=10.9-3.26.3 #MARIADB_TAG=10.6-3.26.3 #MARIADB_TAG=10.5-3.26.3 #MARIADB_TAG=10.4-3.26.3 ### --- VANILLA DRUPAL ---- DRUPAL_TAG=10-4.58.1 #DRUPAL_TAG=9-4.58.1 #DRUPAL_TAG=7-4.58.1 ### --- PHP ---- # Linux (uid 1000 gid 1000) PHP_TAG=8.2-dev-4.47.1 #PHP_TAG=8.1-dev-4.47.1 #PHP_TAG=8.0-dev-4.47.1
Para arrancar nuestros contenedores, tenemos dos opciones:
docker compose up -d
O también puedes utilizar el paquete Make, que viene por defecto instalado con la distribución de Ubuntu, en este caso el comando para arrancar los contenedores sería:
make up
Una vez ejecutado cualquiera de los anteriores comandos, si todo va bien, deberías ver en tu consola, algo parecido a la siguiente imagen:
Gracias a que hemos eliminado previamente, el archivo docker-compose.override.yml, que reescribe la configuración de nuestros contenedores, podremos descargar el esqueleto de un proyecto Drupal 10, en este caso, para colocarlo dentro de nuestra carpeta del rood y así tener todos los archivos listos, por si en un futuro queremos compartir nuestro código, con otros miembros del equipo o trasladarlo a otra máquina.
A partir de Drupal 8, es recomendable utilizar el gestor de paquetes Composer, para garantizar la descarga total de las dependencias y facilitar las tareas de actualización y/o mantenimiento de Drupal, una vez esté en funcionamiento.
Composer está disponible dentro del contenedor encargado de ejecutar PHP, así que primero comprobaremos los nombres de todos los contenedores y luego accederemos al contenedor de PHP. Para conocer los contenedores que tenemos funcionando actualmente, ejecutaremos el siguiente comando en la consola:
docker ps
Esto nos debería devolver el listado con todos los contenedores que estén en funcionamiento:
En nuestro caso, el contenedor de php se llama my_drupal10_project_php, para acceder dentro del contenedor y poder ejecutar el comando composer, escribiremos lo siguiente en la consola:
docker exec -it my_drupal10_project_php bash
Esto nos colocará dentro de la carpeta ROOT del servidor:
A continuación, podremos descargar el esqueleto de Drupal 10, añadiendo el siguiente comando:
composer create-project drupal/recommended-project vaciar
Este comando descargará todos los arhivos necesarios para una instalación de Drupal 10, dentro de la carpeta que yo he llamado VACIAR, para que recordemos que no debemos dejar nada dentro una vez termine la descarga.
Antes de sacar los archivos de la carpeta VACIAR, para evitar que se suban por error, cualquiera de los archivos de Docker, que sólo deberían estar en nuestro servidor local, tendremos que añadir esos archivos al .gitignore que nos viene por defecto al descargar Docker4Drupal, así que, lo abriremos con nuestro editor, y a continuación, añadiremos todos los archivos correspondientes a Docker y sus contenedores:
El archivo .gitignore, quedaría de la siguiente manera, con nuestros cambios añadidos:
.idea/ mutagen.yml.lock .vscode #ignoramos los archivos de Docker y el servidor tests .dockerignore .env docker-compose.yml docker.mk LICENSE.md Makefile README.md traefik.yml
Ya que tenemos configurado el archivo .gitignore, procederemos a extraer todos los archivos de la carpeta vaciar, para colocarlos en la carpeta raíz de nuestro servidor y de esta forma iniciar el proceso de instalación del Drupal. Para ello, no hace falta que estemos dentro del contenedor:
mv vaciar/* .
mv vaciar/.* .
Con esto, quedarán fuera de la carpeta vaciar, todos los archivos de Drupal y a continuación, podremos eliminar la carpeta.
sudo rm -rf vaciar
Ahora que ya hemos colocado todos los archivos necesarios para instalar Drupal, podremos proceder con el instalador, pero antes, para estar seguros de que tenemos todo actualizado a la versión más reciente disponible, ejecutaremos el comando update de Composer, desde nuestro contenedor php:
composer update
El resultado, debería ser algo parecido a la siguiente imagen:
Para comprobar que podremos instalar nuestro Drupal 10, abriremos el navegador y escribiremos los datos que constan en la variable de entorno, y que explicamos al principio de este ejercicio, si no has cambiado ninguno de los valores por defecto, deberías escribir esto en tu navegador :
http://drupal.docker.localhost:8000/
El resultado, será que se pondrá en marcha el instalador de Drupal 10.
Al hacer clic en la primera pantalla del instalador, es posible que nos encontremos con algunos mensajes, relacionados con archivos que nos faltan por descargar, crear o configurar. El primero de ellos, en mi caso es una alerta que me advierte de la ausencia de la carpeta translations, encargada de alojar los archivos relacionados con las traducciones de Drupal, ya que nuestra instalación será en Español.
Para corregir el error, creaemos la carpeta files, dentro de la ubicación: web/sites/default/, y acontinuación, daremos permisos de escritura a la carpeta files...
Si volvemos al navegador y refrescamos, veremos que nos deja continuar con el proceso de instalación, hasta la siguiente pantalla:
Al hacer clic en el botón Guardar y continuar, nos encontraremos con otro mensaje de alerta:
El instalador Drupal necesita que se cree un archivo ./sites/default/settings.php como parte del proceso de instalación. Así que simplemente, seguiremos las instrucciones, copiaremos el archivo default.settings.php y lo renombraremos a settings.php, asegurándonos de otorgarle permisos de escritura, que serán necesarios durante el resto de la instalación, para que Drupal pueda configurar los datos de acceso a la base de datos y la carpeta para la sincronización.
cp web/sites/default/default.settings.php web/sites/default/settings.php chmod -R 777 web/sites/default/settings.php
Esta vez, cuando hayamos refrescado el navegador, veremos la pantalla donde tendremos que añadir los datos de acceso a la base de datos, que son los que podremos confirmar en nuestra variable de entorno .env, es muy importate que en lugar de dejar localhost, cambiemos el servidor de la base de datos por mariadb, o nos devolverá un error de permisos.
Tan pronto como se terminen de descargar las traducciones, debido a que nuestra instalación es en Español, veremos la pantalla final, donde debemos rellenar los detalles del usuario administrador, el correo electrónico que utilizará Drupal, para comunicarse con los usuarios que interactuén, el lenguaje, horario y pais...
Rellenaremos todo, presionaremos el botón continuar, y por fin, hemos terminado el proceso completo de instalación de un proyecto Drupal 10, con Docker.
Ahora ya podremos comenzar a trabajar con nuestro Drupal.
Como hemos comentado al principio, por lo general, cuando estás trabajando con algún proyecto de desarrollo, en algún momento tendrás que realizar el despliegue al entorno de producción, por lo cual es muy recomendable, que desde el principio, te acostumbres a trabajar con un repositorio, añadiendo y comiteando tus cambios, a medida que vayas avanzando en el proceso.
Para evitar que se añadan archivos innecesarios de Drupal, como vendor o files, actualizaremos el archivo .gitignore, antes de realizar nuestro primer commit.
Accede a este enlace y copia todo su contenido, justo debajo de nuestros últimos cambios en el .gitignore:
https://drupaladicto.com/snippet/git-ignore-para-drupal
Una vez actualizado tu archivo, podemos añadir y comentar nuestros cambios:
git init git add . git commit -m "Archivos base para instalar Drupal 10"
Así nos aseguramos de que, al ejecutar el comando de subida a nuestro repositorio, git pull, sólo subamos lo necesario para no ocupar espacio innecesario en nuestro repositorio final.
Cuando estamos empezando con el desarrollo o implementación de cualquier proyecto, en la mayoría de los casos nos resultará necesario la creación de contenidos con los que podamos realizar pruebas de todo tipo.
Para realizar esta tarea, en Drupal contamos con el módulo Devel Generate, integrado dentro de las dependencias del módulo Devel. Por lo que, una vez instalado y activado en nuestro Drupal, sólo tendremos que dirigirnos a la url "/admin/config/development/generate/content", y allí veremos el listado de todos los tipos de contenidos que tengamos creados en nuestro proyecto.
Paso 1 Descargar el módulo:
Lo primero que tendrás que hacer es descargarlo, para ello, a partir de Drupal 8 se recomienda que utilices el gestor de paquetes Composer, ya que te facilitará tanto la instalación como futuras actualizaciones del tus proyectos. No obstante también podrías descargarlo desde la Página oficial del módulo y una vez descargado, tendrás que colocarlo en la carpeta "modules" o "modules/contrib", dependiendo de tu instalación y asegurarte de descargar todas sus dependencias o el módulo no funcionará, esta es una de las ventajas con las que cuentas al hacer la instalación usando Composer.
Paso 2 Activación del módulo :
Para activar el módulo Devel, al igual que todos los demás módulos contribuidos de Drupal, tendrás la posibilidad de hacerlo, mediante el uso de la herramienta Drush, con el comando "drush en devel -y", que sirve para activar cualquier módulos y todas sus dependencias, o desde la interfaz de Drupal.
Además de poder generar automáticamente nuestros contenidos, podremos configurar algunas opciones adicionales como, especificar su fecha de publicación, comentarios relacionados, títulos para los contenidos con un límite de caracteres específico, el idioma o incluso los usuarios que los crearon, esta última opción nos facilitará el testeo de los permisos de usuario.
Para generar nuestro contenidos, sólo tendremos que marcar las opciones con las que deseamos trabajar, es recomendable intentarlo la primera vez como poco contenido para estar seguros de obtener lo que pensábamos o si hará falta modificar algún campo.
Si no estás conforme con el contenido generado o simplemente quieres volver a generar contenidos otra vez, puedes seleccionar la opción de eliminar todos los contenidos previamente creados antes de ejecutarlo.
Una vez que hayamos revisado todos los campos que nos interesan, haremos clic en el botón que aparece en la parte inferior de la pantalla y comenzará el proceso inmediatamente.
Cuando se haya realizado el proceso de generación de nuestros contenidos, veremos un mensaje de confirmación en la parte superior de la pantalla, con la cantidad y el tipo de contenido que decidimos utilizar.
Para comprobarlo, sólo tendremos que dirigirnos al listado de contenidos en la url "/admin/content" y veremos el listado de contenidos generados por el módulo con las configuraciones adicionales, si es que hemos seleccionado alguna.
Si quieres dedicarte al desarrollo de aplicacione web, y además te gustaría probar con Drupal 8, estás de suerte, porque en esta ocasión podrás acceder a un repositorio y descargarte todo lo que necesitarás para comenzar a trabajar con este potente CMS.
Yo soy usuario Windows, así que para poder trabajar con Linux, he instalado WLS2, con una distribución de Ubuntu 22.04, dentro de mi ordenador con Windows 11. De esta forma, puedo tener ambos entornos, sin la necesidad de complejas configuraciones, ni que se ralentice mi máquina.
Así que lo único que necesitaremos en este caso será descargar los archivos de Lando, si todavía no sabes cómo hacerlo, puedes ver el video y la documentación HACIENDO CLIC AQUÍ.
Ahora que ya tenemos instalado Lando, crearemos la carpeta donde estará nuestro Drupal 8 y a continuación, vamos a generar nuestro archivo de configuración de Lando, ejecutando el siguiente comando:
lando init
En cuanto hayamos terminado con el proceso, podremos arrancar Lando, para poder ejecutar el Composer, que necesitaremos en el siguiente paso.
Ya que tenemos Lando instalado y listo para comenzar, nos colocaremos en la ubicación donde estará nuestro proyecto y a continuación, vamos a clonar el repositorio, para que descargue los primeros archivos del Drupal que vamos a necesitar.
git clone https://github.com/drupaladicto/drupal8-lando.git
En el repositorio, además de los archivos de Drupal, encontraremos una carpeta llamada Extras, dentro estarán el archivo settings.php, que tendremos que copiar a la ubicación: “sites/default/settings.php” y la base de datos que importaremos más adelante, donde tendrás configurado el subtheme y algunos módulos adicionales.
Ahora que ya tenemos los primeros archivos en nuestro entorno local, podremos arrancar nuestro servidor de Lando, para ello ejecutaremos el siguiente comando:
lando start
A continuación descargaremos el resto de dependencias de Drupal 8, para esto necesitaremos Composer, así que ejecutaremos el siguiente comando:
lando composer update
Ya casi hemos terminado, como hemos mencionado anteriormente, necesitaremos colocar el settings.php, en la ubicación correcta para que Drupal pueda funcionar, pero además de esto, tendremos que añadir nuestra base de datos.
Los detalles de la base de datos están configurados en el archivo de configuración de lando .lando.yml, para asegurarte, puedes ejecutar el comando lando info y verás en pantalla, toda la información que necesitarás relacionada con tu proyecto:
Así que nos moveremos a la carpeta Extras y ejecutaremos el siguiente comando:
lando db-import nuestrabase.sql
Ya estamos listos para acceder a nuestro Drupal 8 y comenzar en nuestro viaje de exploración.
Pero antes nos aseguraremos de que todo esté correcto, por eso ejecutaremos el siguiente comando de Lando:
lando rebuild
Cuando ya tengas funcionando el Drupal 8, necesitarás acceder como administrador para poder comenzar a evaluar, explorar y crear tus propios cambios en dentro del proyecto. Para ello, sólo tendrás que ejecutar el siguiente comando y luego copiar en el navegador a partir de "/user":
lando drush:uli
Si nunca haz hecho esto de recuperar el acceso utilizando Drush, puedes ver el ejemplo HACIENDO CLIC AQUÍ
Para todos los que trabajamos, en el desarrollo de páginas web utilizando Drupal, es muy importante que nos mantengamos informados, sobre las últimas actualizaciones, tanto a nivel de las funcionalidades o parches de seguridad, del propio CMS, como de las herramientas relacionadas con éste, por ejemplo, el gestor de paquetes Composer, recomendado para todos los proyectos, a partir de Drupal 8 y que hace poco, lanzó una nueva versión ( Cómo instalar Composer 2 en Ubuntu 20.04 ) o superior o la consola Drush.
Con el propósito de facilitar tus tareas de desarrollo, hoy quiero hablarte sobre, La interfaz de línea de comandos (en inglés, command-line interface, CLI), que se utiliza en Drupal, conocida como Drush, para que puedas sacarle el mayor provecho posible y obtener mejores resultados.
Hace varios años, se recomendaba que al trabajar con Drush y Drupal, realizáramos una instalación global, con la que pudiéramos efectuar toda clase de operaciones, sin importar la versión de nuestro proyecto; pero a partir de Drupal 8, se comenzó a proponer instalaciones individuales, para evitar errores producidos por incompatibilidades, ya fuera entre versiones de php, o del núcleo de Drupal.
Actualmente, para instalar Drush en cualquier proyecto de Drupal 8 o superior, utilizaremos el gestor de paquetes Composer, y al igual que con otros módulos de Drupal, dejaremos en él la responsabilidad de descargar todos los archivos necesarios para su funcionamiento, para ello escribiremos desde la carpeta raíz de nuestra instlación, el siguiente comando:
composer require drush/drush
De inmediato se iniciará el proceso de descarga de la versión más actual y estable, que esté disponible sobre esta herramienta de comandos, en el momento en que escribo este artículo, es la versión 10.5.0
Con el Drush Launcher podrás ejecutar comandos de Drush en todos tus proyectos, sin la necesidad de escribir la ruta completa ej: "/vendor/bin/drush cr". Exiten varias formas para descargar e instalarlo, puedes revisar la documentación en Repositorio Drush Launcher
Drush te genera automáticamente y de manera configurable, toda la estructura de archivos necesaria para crear un módulo. (Funcionalidad de la antigua Drupal Console)
drush generate module
En algunos casos, es posible que perdamos el acceso del usuario admin, al realizar algún traspaso de entornos o no haber guardado los datos de acceso en un lugar fácil de encontrar. Para estos casos, el siguiente comando te da la posiblidad de acceder como administrador para que puedas cambiar la clave de acceso por una nueva.
drush:uli
Forma de uso: Copia en el navegador el enlace generado, a partir de "/user" y pégalo en el navegador a continuación del dominio de tu página. Al presionar enter accederás directamente a la página de configuración del usuario administrador para que puedas cambiar la clave de acceso sin necesidad de acordarte de la anterior.
Como ya sabrás, Drupal ofrece la posibilidad de verificar, todos los errores que registra a nivel de base de datos, ya que los guarda en una tabla llamada Watchdog, con Drush podrás acceder a estos datos, sin la necesidad de entrar a la interfaz de usuario usando el siguiente comando:
drush wd-show
Al ejecutarlo, verás inmediatamente en consola, todos los datos que haya guardado Drupal dentro de esta tabla, facilitándote el análisis de posibles errores más rápidamente.
En algunos proyectos, sobretodo cuando se trata de instalaciones muy grandes, necesitamos tener una idea rápida de los módulos o temas que se encuentran activados en un momento determinado. Este comando nos mostrará en pantalla, un listado completo de todos los módulos y temas, con la correspodiente información acerca su versión y de si están o no activados.
drush pml
Cuando estamos haciendo el traspaso de entornos, es posible que necesitemos exportar toda la base de datos para dicho traspaso, con este comando, podremos generar rápidamente un backup que se guardará a la altura de nuestra carpeta raíz del proyecto:
drush sql:dump --result-file=../mi_backup.sql
drush sql-drop
drush sql-cli < ~/my-sql-dump-file-name.sql
Volcará la base de datos y la comprimirá, colocándola en el directorio predeterminado de drush bajo una marca de tiempo
drush sql-dump --gzip --result-file
Volcará la base de datos en el archivo especificado antes de comprimirlo con gzip
drush sql-dump --gzip --result-file=/path/to/file.sql
Fijar un tema por defecto para tu instalación de Drupal, ejemplo el theme Bartik
drush config-set system.theme default bartik
Puedes aprende más sobre el uso y los comando de drush, visitando su drushcommands o www.drush.org/latest/
Si estás trabajando con Drupal, en muchas ocasiones te verás en la necesidad de instalar y poner en marcha, en tu entorno local, proyectos que han sido creados previamente por otros desarrolladores o miembros de tu equipo de trabajo, para que puedas realizar la implementación de algunos cambios, analizar el código del código o simplemente realizar tareas de testing en un entorno seguro.
Tienes disponibles varios métodos de configuración para entornos locales HACIENDO CLIC AQUÍ
Hoy te quiero mostrar, cómo trabajar en tu entorno local, basándonos en contenedores Docker y un proyecto existente de Drupal 9, para que puedas entender todos los pasos necesarios y activar cualquier proyectos sin la necesidad de invertir demasiado tiempo en el proceso.
- Tener instalado Docker y Docker compose en tu entorno local. HAZ CLIC AQUI
- Tener los archivos del proyecto Drupal con el que vas a trabajar. Para descargar la estructura base vacía HAZ CLIC AQUÍ
- Tener la base de datos del proyecto Drupal con el vas a trabajar
Antes de poder comenzar con el proceso de instalación del proyecto Drupal, necesitaremos poder ejecutar código PHP, acceder a nuestra base de datos por medio de Mysql y acceder a un servidor Apache o NGNIX.
La buena noticia, es que exite un repositorio, en el que podremos encontrar todo lo necesario, se llama DockerForDrupal, desarrollado por el equipo de Wodby.
Así que abriremos nuestra consola y, a continuación, clonaremos el respositorio, para tener disponibles todos los archivos:
git clone https://github.com/wodby/docker4drupal.git/ server
Esto descargará todos los archivos en la carpeta server, y de esta manera, podremos copiar los archivos necesarios para cualquier proyecto de Drupal, sin la necesidad de tener que descargarlos nuevamente en el futuro.
Para que no tengamos ningún tipo de conflicto, una vez copiemos los archivos necesarios en cualquier proyecto de Drupal, eliminaremos el directorio .git y el archivo docker-compose.override.yml
Así que nos colocaremos dentro de la carpeta server y a continuación, ejecutaremos los siguientes comandos en nuestra consola:
sudo rm -rf .git
sudo rm -f docker-compose.override.yml
Con estos dos comandos habremos eliminado cualquier posibilidad de conflicto en el futuro.
En este punto, lo próximo que necesitaremos realizar el la copia de todos los archivos ubicados en la carpeta server, hacia la carpeta raíz del nuestro proyecto Drupal, puedes hacerlo por consola o desde el explorador de archivos de windows, arrastrándolos.
sudo cp -R server/ drupal9
Antes de poder comenzar a trabajar con los contenedores relacionados con nuestro proyecto Drupal, tendremos que explorar y modificar algunos ajustes, relacionados principalmente con el nombre del proyecto, la conexión con MySQL, entre otros.
Para ello, abriremos el archivo (.env), que veremos en nuestra carpeta raiz, al haber copiado los archivos desde la carpetar server; en él encontraremos todas las definiciones por defecto, paa trabajar con un proyecto Drupal, incluyendo el nombre del proyecto, datos de conexión al servidor mysql, entre otros.
Como la idea es trabajar con un proyecto que ya existe, deberíamos modificar algunos de estos datos, o simplemente, dejar los mismos y actualizar los datos de conexión en el archivo de Drupal llamado settings.php, dentro de la carpeta "web/sites/default/"
### PROJECT SETTINGS PROJECT_NAME=drupal9_existente PROJECT_BASE_URL=drupal9_existente.docker.localhost PROJECT_PORT=8000 DB_NAME=drupal9_existente DB_USER=drupal9_existente DB_PASSWORD=drupal9_existente DB_ROOT_PASSWORD=password DB_HOST=mariadb DB_PORT=3306 DB_DRIVER=mysql
Si todos los pasos anteriores no han devuelto ningún error o si ya los hemos corregido, entonces, podremos poner en marcha todos los contenedores, para continuar con el proceso de instalación de Drupal.
El primer comando que tendremos que ejecutar para el arranque será el siguiente:
docker-compose up -d
Si tienes instalado Make, también puedes utilizar este comando :
make up
Si quieres saber qué es Make y cómo instalarlo, HAZ CLIC AQUÍ
Esto se iniciará el proceso de activación de todos los cotenedores en segundo plano, para que podamos continuar en la misa ventana de nuestra consola, sin entrar en conflicto cada vez que ejecutemos código posteriormente.
Ya tenemos todo lo necesario para que podamos acceder a nuestro proyecto de Drupal, los contenedores ya están funcionando, por lo que, si escribimos el dominio, configurado en el archivo .evn, dentro de nuesto navegador, lo siguiente que tendríamos que ver es nuesto proyecto funcionando, pero todavía no hemos importado la base de datos para que esto ocurra.
Para importar la base de datos dentro de nuestro contenedor y que podamos ver luego el proyecto, tendremos que acceder directamente dentro del contenedor adecuado, para eso, ejecutaremos el comando que nos devolverá el nombre y estatus de todos los contenedores:
docker ps
A continuacióbn, buscaremos el Identificador único para el contenedor de Mysql, y luego escribiremos el siguiente comando, sustituyendo los datos necesarios:
docker exec -it ID_CONTENEDOR bash
Con esto podremos acceder al interior del contenedor seleccionado, que en este caso será el encargado de gestionar nuestra base de datos y a continuación, podremos ejecutar cualquiera de los comando de mysql.
Para acceder al servidor Mysql y consultar, podremos ejecutar algo parecido al siguiente comando:
mysql -udrupal9_existente -pdrupal9_existente
Con la anterior líneas, estaremos dentro de MySql y podremos ver el listado de bases de datos, de usuarios, permisos, etc.
En nuestro caso, ya tenemos listo el archivo que vamos a importar, colocado dentro de la carpeta raíz de nuestro proyecto Drupal, por lo tanto, para accedere al contenedor y realizar la importación, bastará con ejecutar el siguiente comando, sustituyendo los datos por los correspondientes a tus propios contenedores:
docker exec -i f8e957b6b019 mysql -udrupal9_existente -pdrupal9_existente drupal9_existente < backup_existente.sql
Ya tenemos nuestro proyecto Drupal, listo para continuar trabajando, pero quizás necesitaremos realizar algunas actualizaciones, ya sea mediante el uso del gestor de paquetes Composer, o de la herramienta Drush.
En estos casos, el contenedor desde el cual tendremos que ejecutar ambas operaciones, será el encargado de php, por lo que buscaremos nuevamente el nombre, con el comando docker ps, y una vez lo sepamos, la operación será muy parecida:
docker exec -it ID_CONTENEDOR bash
Y posteriormente, podremos ejecutar cualquiera de los comandos de Composer o Drush.
Permisos de Docker
Es posible que al ejecutar el comando para levantar los contenedores de Docker docker-compose up - d, la primera vez, te encuentres con un error relacionados con los permisos de ejecucion de los contenedores
Para solucionarlo, ejecuta el siguiente comando, ubicándote dentro de la carpeta en la que quieres levantar los contenedores:
sudo chmod 777 /var/run/docker.sock
Permisos en las carpetas
Aunque estemos trabajando con los archivos de un proyecto existente, al momento de trasladar esos archivos dentro de los contenedores, es posible que tengamos que volver a otorgar permisos de escritura y lectura a la carpeta root.
Para otorgar todos los permisos, nos colocaremos dentro de nuestra carpeta raiz y a continuación, ejecutaremos el comando siguiente:
sudo chmod -R 777 ./