Drupal es un sistema de gestión de contenidos (CMS) libre y de código abierto, escrito en PHP y distribuido bajo la licencia pública general GNU. Proporciona una potente herramienta de gestión de contenidos con APIs avanzadas para la publicación en múltiples canales. Drupal es uno de los CMS más utilizados en internet, presente en al menos el 14% de los 10,000 sitios web más populares. Es ampliamente empleado en industrias empresariales globales, gobiernos, instituciones educativas y organizaciones de todo tipo. Drupal ofrece un sistema altamente escalable, integrado con aplicaciones digitales y capaz de gestionar múltiples sitios para diferentes organizaciones con soporte multilingüe. En esta guía, te mostraré cómo instalar Drupal en un servidor con Debian 12. Configuraremos Drupal en una pila LAMP (Apache2, MariaDB y PHP) y lo aseguraremos con certificados SSL/TLS proporcionados por Let's Encrypt.
Requisitos previos
Antes de comenzar, asegúrate de contar con lo siguiente:
- Un servidor con Debian 12.
- Un usuario con privilegios administrativos (no root).
- Un nombre de dominio apuntando a la dirección IP de tu servidor.
Instalación de Dependencias
Drupal es un sistema de gestión de contenidos escrito en PHP y utiliza MySQL o MariaDB como base de datos. Para instalar Drupal, es necesario tener instalados tanto PHP como los paquetes de MySQL/MariaDB en tu sistema.
En los pasos siguientes, instalaremos las dependencias necesarias para Drupal, incluyendo la pila LAMP (Apache2, MariaDB y PHP), el gestor de dependencias PHP Composer, y algunas extensiones adicionales de PHP.
proceso para instalar un servidor web con Apache, MariaDB (un sistema de bases de datos similar a MySQL) y Drupal (un CMS o sistema de gestión de contenido) en un servidor Linux, además de configuraciones relacionadas con PHP y SSL. Aquí un resumen detallado de cada paso:
sudo apt update
Actualiza los índices de los paquetes disponibles para asegurarse de que se instalarán las versiones más recientes.
Instalar Apache, MariaDB, PHP y sus módulos:
sudo apt install apache2 mariadb-server composer php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc
Instala Apache (servidor web), MariaDB (servidor de base de datos), Composer (gestor de dependencias PHP), y una serie de módulos PHP esenciales para que Drupal funcione correctamente, como php-mysql (soporte para bases de datos MySQL/MariaDB) y php-gd (biblioteca gráfica).
Verificar y revisar el estado de Apache:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Verifica si Apache está habilitado para iniciarse automáticamente y muestra el estado actual del servicio.
Verificar y revisar el estado de MariaDB:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Verificar la instalación de Composer:
sudo -u www-data composer -v
which composer
Comprueba si Composer está instalado correctamente y muestra su versión. También localiza la ruta de Composer.
Configurar la seguridad de MariaDB:
sudo mariadb-secure-installation
Configura la seguridad de MariaDB eliminando configuraciones predeterminadas inseguras.
Acceder a MariaDB como usuario root:
sudo mariadb -u root -p
Inicia sesión en MariaDB como root para realizar configuraciones de la base de datos.
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'Password1';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Instalar el módulo uploadprogress para PHP:
sudo pecl install uploadprogress
Instala el módulo uploadprogress, que permite monitorear el progreso de la subida de archivos.
Configurar uploadprogress en PHP:
cat <<EOF | sudo tee /etc/php/8.2/mods-available/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF
sudo ln -s /etc/php/8.2/mods-available/uploadprogress.ini /etc/php/8.2/apache2/conf.d/15-uploadprogress.ini
Crea un archivo de configuración para el módulo uploadprogress y lo habilita para PHP 8.2.
Editar la configuración de PHP:
sudo nano /etc/php/8.2/apache2/php.ini
Abre el archivo de configuración de PHP para hacer ajustes (por ejemplo, el tamaño máximo de carga de archivos o el tiempo máximo de ejecución de scripts).
Instalar Drupal usando Composer:
composer create-project drupal/recommended-project drupal
Descarga e instala la versión recomendada de Drupal en la carpeta drupal.
Reiniciar Apache:
sudo systemctl restart apache2
Reinicia el servidor Apache para aplicar cambios en la configuración de PHP y en el módulo uploadprogress.
Descargar y configurar Drupal manualmente:
wget https://ftp.drupal.org/files/projects/drupal-10.3.3.tar.gz -O drupal.tar.gz
tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupal
sudo chown -R www-data:www-data /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/
Descarga el código fuente de Drupal, lo descomprime y ajusta los permisos de la carpeta de instalación para que Apache pueda leer y escribir los archivos.
Habilitar módulos importantes de Apache:
sudo a2enmod rewrite ssl headers deflate
Habilita los módulos rewrite (para URLs amigables), ssl (para SSL), headers, y deflate (para comprimir contenido).
Configurar un sitio virtual de Apache para Drupal:
sudo nano /etc/apache2/sites-available/drupal.conf
sudo a2ensite drupal.conf
Crea una configuración de sitio virtual para Drupal y lo habilita en Apache.
Configurar SSL con Certbot:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@mekashinev.com -d mekashinev.com -d www.mekashinev.com
Utiliza Certbot para obtener un certificado SSL gratuito para el dominio mekashinev.com, configurando Apache para redirigir automáticamente el tráfico HTTP a HTTPS.
Verificar la configuración de Apache:
sudo apachectl configtest
sudo systemctl restart apache2
Verifica si la configuración de Apache es válida y reinicia el servidor web.
Comments