Cómo instalar Drupal con Apache en Debian y Ubuntu


Desarrollar su sitio web desde cero puede ser una tarea abrumadora. Lleva mucho tiempo y es caro si planea contratar a un desarrollador. Una forma fácil de hacer que su blog o sitio web despegue es utilizando un CMS (sistema de gestión de contenido) como Drupal.

Drupal es un sistema de gestión de contenido (CMS) de código abierto, escrito en PHP y publicado bajo GPL. Se lanzó por primera vez en enero de 2001 para impulsar blogs personales, sitios web corporativos y cualquier tipo de sitio web que la gente pueda necesitar. Hoy en día, Drupal es uno de los CMS más famosos del mundo con millones de sitios web en todo el mundo.

La última versión de Drupal al momento de escribir esta guía es Drupal 9.

  1. Gratis y de código abierto.
  2. Funciones básicas como la capacidad de publicar publicaciones, páginas y un sistema de comentarios, fuente RSS, registro de usuarios. instalar y modificar plantillas y complementos.
  3. Más de 30000 módulos disponibles para descargar de forma gratuita desde la tienda Drupal.
  4. Disponible en más de 110 idiomas con soporte para idiomas RTL como el árabe.
  5. Soporte para múltiples sitios y soporte para la edición y creación de contenido para múltiples usuarios.
  6. Soporte para crear blogs, foros, encuestas utilizando módulos que se instalan de forma predeterminada.
  7. Muy bien el sistema de actualizaciones para notificarle acerca de las actualizaciones de seguridad.
  8. Muchas otras funciones.

En esta guía, instalaremos Drupal en Debian 10/9 y Ubuntu 20.04/18.04.

Dado que Drupal es un CMS impulsado por PHP al que los usuarios acceden desde el front-end, debe tener una pila LAMP instalada en su instancia de Debian/Ubuntu. LAMP es una pila de software que se utiliza para probar e implementar sitios web y consta de 3 componentes principales:

  • Servidor web Apache.
  • Servidor de base de datos MariaDB.
  • PHP (para Drupal 9, se recomienda PHP 7.3 y versiones posteriores).

Una vez cumplidos los requisitos, ¡comencemos!

Paso 1: instale Apache, MariaDB y PHP

1. Para instalar Drupal, necesitará un servidor web en ejecución y un servidor de base de datos, en este artículo trabajaremos con Apache, PHP y MariaDB, puede instalarlos fácilmente con la ayuda de una herramienta de administración de paquetes llamada apt.

$ sudo apt install apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc 

2. En los servidores de producción, debe habilitar algunas medidas de seguridad básicas para la instalación de la base de datos MariaDB, ejecutando el siguiente script de seguridad que se envía con el paquete MariaDB.

$ sudo mysql_secure_installation

Después de ejecutar el script, lo llevará a través de una serie de preguntas donde puede responder yes (y) para habilitar algunas opciones de seguridad básicas como se muestra.

  • Ingrese la contraseña actual para root (ingrese para ninguna): Ingrese
  • ¿Establecer una contraseña de root? [Y/n] y
  • ¿Eliminar usuarios anónimos? [Y/n] y
  • ¿Deshabilitar el inicio de sesión de root de forma remota? [Y/n] y
  • ¿Eliminar la base de datos de prueba y acceder a ella? [Y/n] y
  • ¿Volver a cargar las tablas de privilegios ahora? [Y/n] y

Eso es todo, instaló con éxito todos los paquetes requeridos y también agregó una contraseña de MySQL. Ahora es el momento de avanzar y crear una base de datos para la instalación de drupal.

Paso 2: crea una base de datos Drupal

3. Necesitaremos crear una base de datos para nuestra instalación de Drupal, para hacerlo, ejecute el siguiente comando para conectarse al shell mysql.

$ sudo mysql -u root -p

Nota: Le pedirá que ingrese la contraseña de root de MySQL, que ha establecido mientras aseguraba el paquete MySQL, ingrésela y se le pedirá que ingrese a la terminal mysql.

4. A continuación, ejecute la siguiente serie de comandos en el terminal MySQL para crear un nuevo usuario, una base de datos y conceder privilegios de "drupal".

## Creating New User for Drupal Database ##
MariaDB [(none)]> CREATE USER drupal@localhost IDENTIFIED BY "your_password_here";

## Create New Database ##
MariaDB [(none)]> create database drupal;

## Grant Privileges to Database ##
MariaDB [(none)]> GRANT ALL ON drupal.* TO drupal@localhost;

## FLUSH privileges ##
MariaDB [(none)]> FLUSH PRIVILEGES;

## Exit ##
MariaDB [(none)]> exit

Nota: Si lo desea, puede reemplazar el nombre de usuario y el nombre de la base de datos con cualquier otro nombre.

Paso 3: Descarga e instala Drupal en Ubuntu

5. Drupal está disponible para descargar desde el repositorio oficial de Ubuntu/Debian como un paquete, sin embargo, es una versión antigua de Drupal que tiene muchas vulnerabilidades de seguridad, y la versión actual de Drupal es 9.0.6), por eso estaremos descargando Drupal del sitio web oficial

Alternativamente, puede usar el siguiente comando wget para obtener la última versión directamente.

$ sudo wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

6. A continuación, extraiga el archivo tarball y mueva la carpeta drupal sin comprimir a la ruta /var/www/html como se muestra.

$ sudo tar -xvf drupal.tar.gz
$ sudo mv drupal-9.0.6 /var/www/html/drupal

7. Para que drupal sea accesible, asigne los permisos que se muestran:

$ sudo chown -R www-data:www-data /var/www/html/drupal/
$ sudo chmod -R 755 /var/www/html/drupal/

Paso 4: Cree un host virtual Apache Drupal

8. La parte final de la configuración requiere que creemos un archivo de host virtual Apache para nuestro sitio web Drupal. Continúe y cree el archivo de host virtual como se muestra:

$ sudo vim /etc/apache2/sites-available/drupal.conf

Pegue el contenido a continuación.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/drupal/
     ServerName  example.com  
     ServerAlias www.example.com

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

     <Directory /var/www/html/drupal/>
            Options FollowSymlinks
            AllowOverride All
            Require all granted
     </Directory>

     <Directory /var/www/html/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    </Directory>
</VirtualHost>

A continuación, guarde y salga del archivo de configuración.

9. Con el host virtual en su lugar, necesitamos habilitarlo usando los siguientes comandos:

$ sudo a2ensite drupal.conf
$ sudo a2enmod rewrite

10. Luego reinicie el servidor web Apache para que se apliquen los cambios.

$ sudo systemctl restart apache2

Paso 6: configura Drupal desde un navegador

11. En este paso concluimos la instalación de Drupal configurándolo en un navegador web. Así que inicie su navegador y diríjase a la dirección IP de su servidor como se muestra:

http://www.server-ip/
OR
http://www.example.com/

12. En la página que aparece, seleccione su idioma preferido y haga clic en el botón "Guardar y continuar".

13. El siguiente paso le brinda 3 perfiles de instalación que puede aprovechar. Para que las cosas sean fáciles y sencillas, seleccione la primera opción, que es el perfil estándar, y presione el botón "Guardar y continuar".

14. En el siguiente paso, complete los detalles de la base de datos.

15. Poco después, comenzará la instalación de todos los archivos necesarios. Esto toma aproximadamente 5 minutos y un poco de paciencia será suficiente.

16. Complete todos los campos obligatorios sobre su sitio, como el nombre del sitio, la dirección de correo electrónico del sitio, la ubicación y la zona horaria.

17. Finalmente, obtendrá el panel predeterminado para Drupal como se muestra:

Desde aquí, puede comenzar a crear su propio sitio web elegante y con capacidad de respuesta utilizando los temas disponibles o aprovechando los temas premium de Drupal. Eso es todo lo que teníamos por hoy. Esperamos que pueda configurar Drupal cómodamente en Debian 10/9 y Ubuntu 20.04/18.04.