Cómo instalar Drupal en un servidor Ubuntu 14.04 con Apache

Introducción

Drupal es un popular sistema de gestión de contenido (CMS) utilizado para gestionar algunos de los blogs y sitios web más grandes de internet. Gracias a la estabilidad de su base, la adaptabilidad de la plataforma y su activa comunidad, Drupal sigue siendo una opción popular tras más de una década en el mercado.

En esta guía, explicaremos cómo instalar Drupal en un servidor Ubuntu 14.04. Usaremos Apache para nuestro sitio, ya que es la configuración recomendada por el equipo de Drupal.

Prerrequisitos

Antes de comenzar con esta guía, necesitará un servidor Ubuntu 14.04 con una configuración básica completa. Siga nuestra guía de configuración inicial del servidor Ubuntu 14.04 para configurar un usuario no root con privilegios de sudo.

También necesitará tener Apache, PHP y MySQL configurados en su servidor. Puede aprender a configurarlos siguiendo nuestra guía sobre cómo instalar LAMP en Ubuntu 14.04 .

Una vez que haya cumplido con los requisitos anteriores, continúe con esta guía.

Antes de obtener los archivos de Drupal e instalarlos en nuestro directorio web, debemos preparar nuestro sistema. Si bien Apache, PHP y MySQL ya están instalados, necesitamos realizar algunos cambios adicionales y ajustes en cada uno para nuestra instalación.

Configurar un usuario y una base de datos MySQL para Drupal

Lo primero que haremos es configurar un usuario y una base de datos MySQL para nuestra instalación de Drupal. Es importante configurar un usuario y una base de datos dedicados por razones de seguridad.

Para comenzar, inicie sesión en MySQL:

mysql -u root -p

Se le solicitará la contraseña del usuario root de MySQL que configuró durante la instalación de ese software.

Una vez autenticado, accederá a un mensaje de MySQL. Primero, cree una base de datos para su instalación de Drupal. drupalPara simplificar, la llamaremos:

CREATE DATABASE drupal;

A continuación, debe crear un usuario que Drupal pueda usar para conectarse a la base de datos. En esta guía, lo llamaremos usuario drupaluser. Seleccione una contraseña segura para reemplazar la del bloque a continuación:

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

Ahora tenemos una base de datos y un usuario, pero este aún no tiene permiso para realizar ninguna acción en la base de datos. Podemos solucionarlo otorgándole permisos. Drupal necesita diversos permisos para funcionar correctamente. A continuación, se muestra una buena selección que permitirá que el software funcione sin exponer nuestra base de datos innecesariamente:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

Su usuario ya tiene permiso para administrar la base de datos que creamos. Para implementar estos cambios ahora mismo, necesitamos vaciar la información de privilegios al disco:

FLUSH PRIVILEGES;

Ahora, podemos salir de nuestra sesión interactiva MySQL:

exit

Serás redirigido nuevamente a tu bashsesión.

Instalar módulos PHP y ajustar la configuración

A continuación, instalaremos algunos módulos PHP necesarios para la aplicación Drupal. Por suerte, se encuentran en los repositorios predeterminados de Ubuntu.

Actualice su caché de paquetes local e instálelos escribiendo:

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

También realizaremos algunos pequeños ajustes en nuestro archivo de configuración de PHP. Estos son recomendados por los desarrolladores de Drupal. Abra el archivo de configuración de Apache PHP con privilegios de sudo en su editor de texto:

sudo nano /etc/php5/apache2/php.ini

Busque la expose_phpdirectiva y la allow_url_fopendirectiva y configúrelas ambas en “Desactivado”:

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

Guarde y cierre el archivo cuando haya terminado.

Habilitar la funcionalidad de reescritura y archivos .htaccess en Apache

A continuación, debemos analizar Apache. Primero, queremos habilitar la función de reescritura. Esto permitirá que nuestro sitio Drupal modifique las URL a cadenas de texto legibles.

Los mod_rewritemódulos de Apache ya están instalados por defecto. Sin embargo, no están habilitados. Podemos activarlos escribiendo:

sudo a2enmod rewrite

Esto habilitará el módulo la próxima vez que se reinicie Apache. Antes de reiniciar Apache, debemos ajustar la configuración de nuestro host virtual para permitir el uso de un .htaccessarchivo. Este archivo contendrá las reglas de reescritura y se incluye por defecto en la instalación de Drupal.

Abra ahora el archivo virtualhost predeterminado:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Dentro del bloque “VirtualHost”, agregue un bloque de directorio que apunte a la raíz de nuestra web. Dentro de este bloque, establezca la AllowOverridedirectiva en “All”. También puede agregar una ServerNamedirectiva que apunte a su nombre de dominio y modificarla ServerAdminpara que refleje una dirección de correo electrónico válida:

<VirtualHost *:80>
    . . .
    ServerName  example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    . . .
</VirtualHost>

Guarde y cierre el archivo cuando haya terminado.

Ahora solo necesitamos reiniciar el servidor web para implementar nuestros cambios en Apache y PHP:

sudo service apache2 restart

Instalar los archivos de Drupal

Ahora que nuestro sistema está listo, podemos instalar Drupal en nuestra raíz web.

De hecho, primero descomprimiremos los archivos en nuestro directorio personal y luego los copiaremos a la ubicación correspondiente. Esto nos dará acceso inmediato a los archivos originales en caso de que algo salga mal o se eliminen accidentalmente posteriormente.

Vaya a la página de descarga de Drupal y consulte la última versión en la sección “Versiones recomendadas”. Haga clic derecho en el tar.gzenlace de la versión que le interese y seleccione “Copiar dirección del enlace” o cualquier opción similar que ofrezca su navegador.

De vuelta en su servidor, cambie a su directorio de inicio y use wgetel enlace que copió para descargar el archivo del proyecto:

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

Es probable que el enlace tenga un número de versión diferente al final. Una vez descargado el archivo, extraiga el directorio de la aplicación escribiendo:

tar xzvf drupal*

Ahora, acceda a la estructura de directorios recién extraída y use la rsyncutilidad para copiar de forma segura todos los archivos al directorio raíz web de su servidor. En este comando, usamos el punto para especificar el directorio actual. Esto es necesario para copiar algunos archivos ocultos que necesitamos:

cd drupal*
sudo rsync -avz . /var/www/html

Ahora tienes la versión original de los archivos en un directorio dentro de tu carpeta de inicio por si necesitas consultarlos. Nos trasladaremos al directorio raíz web para personalizar nuestra instalación:

cd /var/www/html

Ajuste de los archivos de Drupal para mayor seguridad y facilidad de instalación

El script de instalación web requiere que realicemos algunos cambios en nuestro directorio de Drupal para completar el proceso correctamente. Debemos solucionar esto con antelación para no tener que alternar entre el navegador web y la línea de comandos.

Primero, necesitamos crear un nuevo directorio bajo el subárbol sites/defaultllamado files:

mkdir /var/www/html/sites/default/files

A continuación, debemos copiar el archivo de configuración predeterminada al nombre de archivo que Drupal utiliza para la configuración activa:

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

Este archivo de configuración activo requiere temporalmente permisos adicionales durante la instalación. Necesitamos otorgar permisos de escritura al propietario del grupo por el momento (próximamente asignaremos el propietario del grupo al usuario web). Lo eliminaremos una vez que la instalación se complete correctamente:

chmod 664 /var/www/html/sites/default/settings.php

A continuación, necesitamos asignar la propiedad de grupo de nuestros archivos al usuario web, que en Ubuntu es www-data. Queremos otorgarle a toda la instalación de Drupal estas propiedades de propiedad:

sudo chown -R :www-data /var/www/html/*

Su servidor ahora está configurado adecuadamente para ejecutar el script de instalación basado en web.

Complete el procedimiento de instalación basado en la web

El resto de la instalación se realizará en su navegador web. Abra el navegador y navegue hasta el nombre de dominio o la dirección IP de su servidor:

http://server_domain_or_IP

Verá la página inicial del procedimiento de instalación de Drupal:

Drupal elige perfil

A menos que tenga alguna razón para no hacerlo, seleccione la instalación “Estándar” y haga clic en “Guardar y continuar”. Haga clic en los siguientes botones de continuar hasta llegar a la página de configuración de la base de datos. Complete los datos que utilizó al configurar la base de datos y el usuario.

Para esta guía, utilizamos una base de datos llamada drupal, un usuario de base de datos llamado drupalusery una contraseña de password. Debería haber seleccionado una contraseña diferente durante la creación del usuario. Haga clic en “Guardar y continuar” de nuevo cuando haya completado los datos de su base de datos:

Configuración de la base de datos de Drupal

Nota : Al hacer clic en “Guardar y continuar”, es posible que se le redirija a la misma página de configuración de la base de datos. Si esto ocurre, simplemente actualice la página. La base de datos se configurará y el perfil se instalará.

Verá un cuadro de información en la parte superior de la página que le indica que ahora puede cambiar los permisos del archivo de configuración. Lo haremos en breve. Por ahora, necesita configurar información básica sobre su sitio. Complete los campos con los valores adecuados para su sitio:

Sitio de configuración de Drupal

Haga clic en el botón “Guardar y continuar” por última vez para completar la instalación. Ahora puede visitar su sitio web accediendo a su nombre de dominio:

Instalación completa de Drupal

Ha completado exitosamente la instalación de Drupal.

Sin embargo, aún necesitamos revertir los permisos de nuestro archivo de configuración para que usuarios no autorizados no puedan realizar cambios. En su servidor, restrinja el acceso de escritura al archivo escribiendo:

chmod 644 /var/www/html/sites/default/settings.php

Esto debería bloquear futuros cambios en el archivo de configuración.

Solución de problemas

Si la etapa final de la instalación de Drupal no se completa, revise sus registros de errores:

sudo tail /var/log/apache2/error.log

Si ves un error como este:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error:  Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en
sh: 1: /usr/sbin/sendmail: not found

Esto indica que la instalación no se completó correctamente. Existen varias causas y soluciones para este error, documentadas por Drupal:

https://www.drupal.org/node/481758

Algunas de las soluciones más probables incluyen editar el /etc/php5/apache2/php.iniarchivo para generar el max_execution_time:

sudo nano /etc/php5/apache2/php.ini

Archivo:

max_execution_time = 300

También puedes probar la instalación en un navegador distinto a Chrome, como Safari. La configuración de cookies del navegador puede interferir con la instalación.

De todas formas, una vez que implementes la solución, tendrás que eliminar la base de datos y /var/www/html/sites/default/settings.phpel archivo de Drupal existentes, reemplazarlos con copias predeterminadas y reiniciar la instalación. Si tienes datos o configuraciones que deban conservarse, haz copias de seguridad.

Para hacer esto, puede iniciar sesión en MySQL y DROP DATABASE drupal;luego seguir nuevamente la sección de base de datos anterior para crear la base de datos y otorgarle los privilegios.

También puedes ejecutarlo cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.phpde nuevo para reemplazar el archivo de configuración. Asegúrate de ejecutar el chmod 664 /var/www/html/sites/default/settings.phpcomando para restablecer los permisos correctos.

Luego visite su dirección IP nuevamente, posiblemente en un navegador diferente, e intente la instalación final nuevamente.

Conclusión

Ahora tienes una base sólida para crear tu sitio Drupal. Drupal es increíblemente flexible, lo que te permite personalizar la apariencia y la funcionalidad del sitio según tus necesidades y las de tus usuarios.

Para obtener ideas sobre cómo seguir, visita nuestra página de etiquetas de Drupal , donde encontrarás tutoriales que te ayudarán en tu proceso. También encontrarás una sección de preguntas y respuestas para obtener ayuda o contribuir a la comunidad.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post