Cómo instalar Drupal 8 con composer/drupal-project

drupal8.jpg
Solucionex
13
Dic 18

Hola a tod@s, hoy vamos a analizar uno de los métodos de instalación más útiles de cara al desarrollo entre entornos Drupal con composer/drupal-project.

 

Instalación de Drupal 8 en Ubuntu 18.04.

Requisitos:

- Servidor web (En nuestro caso usaremos Apache).

- PHP 7.x (Mi recomendación es usar 7.1 o 7.2)

- Base de datos (En nuestro caso usaremos MySQL)

 

Comenzamos, en el caso de que no tengamos PHP 7.1 o 7.2 instalados en el repositorio de Ubuntu, lo añadiremos del siguiente modo:

$~sudo apt-get install -y python-software-properties $~sudo add-apt-repository -y ppa:ondrej/php $~sudo apt-get update -y $~apt-cache pkgnames | grep php7.1

 

Para evitar posibles errores con composer o drupal es conveniente descargar las siguientes extensiones:

• php7.1

• php7.1-xml

• php7.1-mbstring

• php7.1-mysql

• php7.1-json

• php7.1-curl

• php7.1-cli

• php7.1-gmp

• php7.1-mcrypt

• php7.1-gd

• libapache2-mod-php7.1

 

El siguiente paso, una vez hemos cumplido los requisitos será instalar composer globlalmente:

$~php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $~php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" $~php composer-setup.php $~php -r "unlink('composer-setup.php');"

 

Los comandos anteriores nos generarán un fichero llamado “composer.phar”, el cual nombramos con el argumento —name. El siguiente paso sera mover este fichero a /usr/local/bin para poder llamarlo de manera global.

$~sudo mv composer.phar /usr/local/bin/composer

 

Si queremos comprobar que se instalo correctamente, utilizaremos el siguiente comando:

$~composer -v

 

Con el siguiente comando descargaremos la ultima version 8.x de Drupal.

$~composer create-project drupal-composer/drupal-project:8.x-dev nombre-del-proyecto —stability dev —no-interaction

 

Esto nos generará la siguiente estructura de carpetas:

 

• composer.json → en él podemos gestionar las versiones del core de Drupal y de los módulos, temas, librerías… también podemos aplicar parches.

• composer.lock → este fichero prioriza las versiones ante el composer.json, es decir, cuando versionemos ambos ficheros y se ejecute un “composer install” prevalecerán las versiones establecidas en el composer.lock.

• drush/ → se encuentra la herramienta por línea de comandos drush. Para poder llamarla globalmente, es necesario descargar drush-launcher sino tendremos que llamarla con $./vendor/drush/drush/drush

• scripts/ → pueden encontrarse scripts que facilitan la instalación y configuran los permisos adecuados

• vendor/ → se encuentran las librerías externas que necesitan core y módulos contribuidos.

• web/  dentro se encuentra la instalación al completo. Es recomendable apuntar con el DocumentRoot a esta carpeta, por temas de seguridad.

 

Modificaremos los permisos de la carpeta web/:

$~sudo chown :www-data /web -R

 

Por último, crearemos un nuevo virtual host q apunta a drupal/web

Copiaremos y modificaremos el siguiente fichero:

 

Copiamos

$~sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/proyecto.conf

 

Modificamos

$~sudo nano /etc/apache2/sites-available/proyecto.conf

 

<VirtualHost *:80>

ServerName proyecto.dev

    DocumentRoot /var/www/html/drupal/web

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

 

y lo habilitaremos con el comando:

$a2ensite proyecto.conf

 

reiniciamos apache para asegurarnos de que los cambios surtan efecto:

$sudo service apache2 restart

 

Configuramos archivos locales editando el fichero /etc/hosts con el nameserver que queramos establecer para nuestro proyecto:

127.0.0.1 localhost

127.0.0.1 proyecto.dev  <- Nuestro name server con el cual accederemos al sitio.

 

Desde el navegador accederemos a la instalación del sitio mediante el nameserver http://proyecto.dev y comenzamos la instalación de nuestro Drupal 8.