Instal·lant Drupal 8 a CentOS amb Apache 2.4 i PHP 7.1

Instal·lant Drupal 8 a CentOS GNU/Linux amb Apache 2.4 i PHP 7.1

En aquest xicotet article explique com instalar la última versió de Drupal 8 funcionant a un CentOS GNU/Linux sobre el servidor de bases de dades MariaDB, Apache 2.4.6 i la versió 7.1 de PHP. He deixat de manera cronològica tots els passos que cal seguir per tal de tenir ràpidament funcionant el nostre projecte web Drupal.

Per a començar, instal·lem el servidor web Apache 2.4.6 (el últim a la versió estable del CentOS) amb:

yum install httpd

Arranquem el servidor Apache per a comprovar que funciona correctament amb:

systemctl start httpd.service

Podem comprovar-ho escrivint a un navegador web la següent url http://ip_del_servidor i hauríem de veure la pantalla principal de l'Apache al CentOS:

Drupal 8 a un CentOS GNU/Linux

Aleshores ja tenim l'Apache corrent. Ara necessitarem instal·lar el PHP i les extensions que necessitem amb:

yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo

I a continuació reiniciarem el servidor web i comprovem si ens funciona el PHP:

systemctl restart httpd.service

Escriurem un fitxer PHP amb a /var/wwww/html i comprovem si ens funciona bé el PHP.

Drupal 8 a un CentOS GNU/Linux

Ja tenim l'Apache i el PHP. Però la versió 5.6 del PHP, aleshores ara ens caldrà habilitar el PHP 7.1. Farem el següent:

yum-config-manager --enable remi-php71

I a continuació instal·lem mòduls de PHP novament, per tal de reemplaçar els mòduls anteriors per els de la versió 7.1, i ho farem amb:

yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo

I veurem que ens actualitza els mòduls i nomès ens instal·larà els de la versió 7.1. I finalment comprovem que ja tenim la versió correcta:

[root@sepamdmz01 html]# php -v
PHP 7.1.25 (cli) (built: Dec 8 2018 13:52:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
[root@sepamdmz01 html]#

Podem comprovar-ho novament amb el phpinfo(); i tal i com ens mostra la següent imatge, ja hauríem de veure la versió correcta del PHP instal·lada:

Drupal 8 a un CentOS GNU/Linux

Seguim, i ara instal·lem el nostre servidor de bases de dades MariaDB amb:

yum install mariadb-server mariadb

I arranquem MariaDB amb:

systemctl start mariadb

A continuació, executarem la següent ordre per a donar-li permissos i un nivell de seguretat òptim al nostre servidor de bases de dades:

mysql_secure_installation

Aquest ordre ens preguntarà algunes opcions del servidor MariaDB. Jo li he dit que vull que el root tinga contrasenya, que no puga accedir remotament, que elimine els usuaris anòmims i les bases de dades d'exemple.

I bé, finalment farem que el servei de MariaDB s'execute a l'inici quan arranquem el servidor amb:

systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

Ja tenim instal·lat el PHP 7.1, el servidor web Apache 4.6.2 i el servidor de bases de dades MariaDB.
Els següents passos són els clàssics a l'hora de muntar un projecte web amb el Gestor de continguts Drupal: crear una base de dades nova, crear un usuari per a aquesta base de dades i configurar els permisos, instal·lar Drupal o, en el meu cas, fer un import d'un dump desplegat des d'una altra màquina on tinc la versió en desenvolupament i, finalment, configurar algunes coses de Drupal.

Creem la base de dades per al Drupal a MariaDB amb:

[root@sepamdmz01 html]# mysqladmin create NOM_DE_LA_BASE_DE_DADES -h localhost -u USUARI_ROOT -p
Enter password:

Ara creem el nostre usuari i li donem tots els permissos en la base de dades que hem creat anteriorment per al nostre projecte Drupal:

MariaDB [(none)]> CREATE USER 'EL_TEU_USUARI'@'localhost' identified by 'EL_TEU_PASSWORD';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON LA_TEUA_BASE_DE_DADES.* TO EL_TEU_USUARI@localhost;

I finalment executem el refresc dels permissos:

MariaDB [(none)]> FLUSH PRIVILEGES;

Això ja quasi està.
Ara, finalment, necessitem activar i configurar el mòdul mod_rewrite a l'Apache, per a fer - entre altres coses - les url elegants al nostre projecte web.
Per fer açò, editem el fitxer /etc/httpd/conf.modules.d/00-base.conf i hem de tenir:

LoadModule rewrite_module modules/mod_rewrite.so

El descomentarem si apareix comentat.

I ara, a continuació, editem el fitxer /etc/httpd/conf/httpd.conf i ens fixem en el :


#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks


#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None


#
# Controls who can get stuff from this server.
#
Require all granted

I finalment modificarem aquesta directiva i reemplaçarem la cadena AllowOverride None per la cadena AllowOverride All. Guardem el fitxer i ja està.

Instalacion Drupal 8 CentOS GNU Linux PHP 7.1 Apache Mariadb MySQL

Cal dir que, sempre després de cada canvi als fitxers de configuració de l'Apache, haurem de reiniciar el servidor web.

systemctl restart httpd.service

I ja ho tens. Drupal 8 ja podrà mostrar les pàgines sense problemes.

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.