Drupal 8

From Wiki-Fou
Revision as of 18:44, 1 March 2016 by Bart (talk | contribs)

Lo primero es comprobar que cumplimos los requerimientos de PHP en el servidor. Drupal 8 es un software reciente y necesita una versión de PHP actual que soporte las nuevas características del lenguaje. Ver: https://www.drupal.org/requirements/php#8

Drush Lo segundo a hacer es instalar drush. Drush es una especie de navaja suiza, un asistente para drupal 8 que permite hacer una cantidad importante de operaciones de mantenimiento y configuración desde línea de comando. Una vez empiezas a usarlo no hay marcha atrás:

  1. http://docs.drush.org/en/master/install/

wget http://files.drush.org/drush.phar php drush.phar core-status chmod +x drush.phar sudo mv drush.phar /usr/local/bin/drush drush init

Descargar drupal 8 Usamos drush para ello. 'dl' es el comando de drush que sirve para descargar el core y módulos de drupal. Las buenas prácticas aconsejan que la raíz del proyecto no sea la raíz de la web. Sino que ésta última sea una subcarpeta llamada public_html. De esta manera tenemos la web y una carpeta raíz inaccesible desde fuera, donde podemos guardar backups, archivos temporales, archivos de configuración, etc. Nos vamos a /var/www, creamos una carpeta para nuestro proyecto (por ejemplo d8 y descargamos el core dentro):

mkdir d8 && cd d8 drush dl drupal-8

Renombramos la carpeta que hemos descargado a public_html y ya tenemos el esqueleto de la web.

Configuración previa a la instalación y política de permisos

Previo a ejecutar el script de instalación hemos de hacer unos pasos previos: 0- Ajustamos permisos para que el drupal sea seguro. Para ello tenemos que poner como propietario de todos los archivos a nuestro user y como grupo a www-data (apache). Una vez hecho eso quitamos permisos de escritura a apache sobre todos los archivos:

sudo chown mi-usuario:www-data /var/www/d8/public_html -R sudo chmod g-w /var/www/d8/public_html -R

Nos vamos a sites/default y copiamos el archivo default.settings.php a settings.php. En la misma carpeta creamos la carpeta files y añadimos permisos de escritura sobre files y settings a apache:

cd /var/www/d8/public_html/sites/default/ cp default.settings.php settings.php mkdir files sudo chmod g+w files settings.php

Configurar el virtual host

Lo primero es añadir un nombre de dominio para trabajar cómodamente:

  1. vi, gedit, sublime, nano, atom, brackets... lo que sea

sudo vi /etc/hosts

  1. Añadimos esta línea: 127.0.0.1 d8.local

Y ahora tenemos que añadir la configuración del virtual host a apache: Nos vamos a /etc/apache2/sites-available y copiamos el archivo que viene de ejemplo:

cd /etc/apache2/sites-available sudo cp 000-default.conf d8.local.conf #no es mala idea poner la ruta como nombre para evitar equívocos

Una vez allí configuramos para que la ruta d8.local apunte a la carpeta que hemos creado y ponemos un nombre correcto a los logs de apache (en /var/log/apache2):

sudo vi d8.local.conf

Editamos el archivo y ponemos esto:

<VirtualHost *:80>

   ServerName d8.local
   DocumentRoot /var/www/d8/public_html
   ErrorLog ${APACHE_LOG_DIR}/d8.error.log

CustomLog ${APACHE_LOG_DIR}/d8.access.log combined </VirtualHost>

Configurar htaccess

.htaccess es un archivo que permite la sobreescritura local de las configuraciones de apache. Tenemos dos opciones:

a) Dejamos el archivo que viene con drupal y damos permiso desde el archivo de configuración anterior para que este pueda sobreescribirlo.

b) Incluimos todos los contenidos del archivo anterior en la conf y borramos el htaccess. La aconsejable es la segunda porque quitamos un poquito de sobrecarga al servidor, pero los dos son válidos.ç

Opción a:

<VirtualHost *:80>

   ServerName d8.local
   DocumentRoot /var/www/d8/public_html
   #Añadimos esto:
   <Directory /var/www/d8/public_html>
     order allow, deny
     AllowOverride all
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/d8.error.log

CustomLog ${APACHE_LOG_DIR}/d8.access.log combined </VirtualHost>

Opción b:

<VirtualHost *:80>

   ServerName d8.local
   DocumentRoot /var/www/d8/public_html
   #Añadimos esto:
   <Directory /var/www/d8/public_html>
     # Contenidos del archivo .htaccess
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/d8.error.log

CustomLog ${APACHE_LOG_DIR}/d8.access.log combined </VirtualHost>