Entorn de desenvolupament de Guifi.net basat en Drupal 7
De Guifi.net - Wiki Català
Aquest document explica com preparar un entorn de desenvolupament de la web de Guifi.net basat en Drupal, per poder col·laborar en el seu desenvolupament.
La web de Guifi.net, actualment, està construïda sobre la versió 7 de Drupal. El desenvolupament se centra entorn del mòdul de Drupal "drupal-guifi", que gestiona tot el funcionament de la web de Guifi.net, però també serveix per desenvolupar altres mòduls (com "budgets") i temes ("theme_guifinet2011").
Contingut
Resum del procés
La preparació de l'entorn de desenvolupament consta dels següents punts essencials:
- Instal·lació i configuració del servidor web i de la base de dades
- Descàrrega, instal·lació i configuració de Drupal 7 i dels mòduls necessaris
- Clonatge del codi font dels mòduls de Guifi des del repositori
Requisits del servidor
En aquest document es contempla que l'entorn de desenvolupament s'executa en un servidor amb una instal·lació neta d'un d'aquests sistemes operatius:
- Debian 8.2 Jessie amb retroversions (backports)
- Ubuntu 14.04.3 LTS Trusty Tahr amb retroversions (backports)
- Arch Linux
tot i que també se'n poden utilitzar d'altres. En qualsevol cas, s'assumeix que el sistema operatiu ja es troba instal·lat i té els paquets actualitzats. Afegir i activar els repositoris de retroversions (backports) de Debian i Ubuntu ens ajudarà, respectivament, a mantenir les instal·lacions més actualitzades.
Instal·lació i configuració del servidor web
Per a l'entorn de desenvolupament farem servir el servidor web Apache i, com que Drupal 7 està escrit en PHP, també instal·larem el mòdul de PHP5. La instal·lació afegirà automàticament alguns paquets més, com a dependències dels anteriors.
Instal·lació del servidor web
Instal·lem els paquets necessaris (amb l'usuari root, o bé amb un usuari que tingui els permisos adequats, afegint "sudo" davant de les ordres):
- Debian:
# apt-get install apache2 libapache2-mod-php5
- Ubuntu
# apt-get install apache2 libapache2-mod-php5
- Archlinux:
# todo
Configuració del servidor web
Un cop acabada la instal·lació, cal configurar el servidor web. Primer, ens assegurem de que el mòdul de PHP5 està activat:
- Debian
# a2enmod php5
- Ubuntu
# a2ensmod php5
- Archlinux:
# todo
El servidor web Apache2 pot gestionar diversos hosts virtuals (i.e. llocs web) alhora, configurant-los en diferents fitxers de la carpeta "/etc/apache2/sites-available/" i després activant-los amb l'ordre "a2ensite nom_del_lloc_web". Per defecte en ve un d'activat, que es configura al fitxer "000-default.conf" i que utilitzarem per mostrar la web de desenvolupament.
Editem el fitxer "/etc/apache2/sites-enabled/000-default.conf" amb l'editor de text "nano" (en podeu fer servir qualsevol altre, si ho preferiu) i canviem la línia
DocumentRoot /var/www/html
per
DocumentRoot /var/www
<Directory /var/www/guifi> AllowOverride All </Directory>
Sortim de l'editor de text i recarreguem el servidor web Apache2:
- Debian
# service restart apache2
- Ubuntu
# service restart apache2
- Archlinux:
# todo
Instal·lació i configuració de la base de dades
En aquest entorn de desenvolupament utilitzarem la base de dades MySQL per emmagatzemar-hi les dades de Drupal i de Guifi. Primer farem la instal·lació i, acte seguit, crearem una base de dades i un usuari per emmagatzemar-hi les dades de Drupal i de la web de Guifi.
Instal·lació de MySQL
Instal·lem el paquet amb el servidor de base de dades MySQL:
- Debian / Ubuntu:
# apt-get install mysql-server
Durant la instal·lació se'ns demanarà posar una contrasenya per a l'usuari "root" de la base de dades: és important no oblidar-la; la farem servir més endavant.
Configuració de MySQL
Un cop instal·lat el paquet de MySQL el servidor està llest i funcionant, però més endavant ens caldrà haver creat una base de dades on emmagatzemar-hi les dades de la web. Aprofitem per fer-ho ara.
El procés consta de diversos passos, explicats a continuació:
- Iniciem una sessió al servidor MySQL amb l'usuari "root" i la contrasenya que acabem d'establir-hi:
# mysql -u root -p Enter password: <<escrivim la contrasenya>> Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 53 Server version: 5.5.46-0+deb8u1 (Debian) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- Creem una base de dades anomenada "guifidev":
mysql> create database guifi_test
- Creem un nou usuari de la base de dades, anomenat "guifi", li assignem una contrasenya (la que volguem) i li atorguem permisos per modificar la base de dades tot just creada:
mysql> grant all on guifidev.* to guifi@localhost identified by 'contrasenya_nou_usuari_guifi'
En resum, tenim:
- Nom de la base de dades: guifidev
- Usuari de la base de dades: guifi
- Contrasenya de la base de dades: la que hagueu escollit
Aquestes tres dades seran necessàries per poder instal·lar Drupal 7 més endavant.
[Opcional] Instal·lació d'una interfície web per a la base de dades
Per al desenvolupament de la web de Guifi, és molt útil disposar d'una interfície web com phpMyAdmin per inspeccionar el contingut de la base de dades. L'instal·lem:
- Debian
# apt-get install phpmyadmin
- Ubuntu
# apt-get install phpmyadmin
- Archlinux:
# todo
Durant la instal·lació, se'ns demana quin servidor tenim instal·lat al sistema. Marcarem (amb la tecla Espai) el servidor "apache2", que acabem d'instal·lar. També se'ns preguntarà si volem "configurar la base de dades de phpmyadmin amb dbconfig-common". Respondrem que sí, i aleshores se'ns demanarà per la contrasenya de l'usuari "root" de la base de dades que hem introduït anteriorment.
A continuació, abans d'acabar amb la instal·lació del paquet, se'ns demanarà una contrasenya per a l'usuari "phpmyadmin" a la base de dades; tal com se suggereix, la podem deixar en blanc i seguir: no la farem servir.
Instal·lació de Drupal 7
Un cop configurat el servidor amb els paquets necessaris, procedim a descarregar, instal·lar i configurar Drupal 7.
Descàrrega de Drupal 7
Ens dirigim al lloc web de Drupal i naveguem fins a l'apartat de descàrregues. Cliquem altres versions (other releases) i cerquem la darrera versió de Drupal 7, que en aquest cas és la versió 7.41. Copiem l'enllaç de baixada en format "tar.gz" i el descarreguem al directori "/var/www":
# cd /var/www # wget https://ftp.drupal.org/files/projects/drupal-7.41.tar.gz
El descomprimim i reanomenem la carpeta:
# tar -xf drupal-7.41.tar.gz # mv drupal-7.41 guifi
Instal·lació i configuració de Drupal 7
Un cop descomprimit Drupal 7 i reanomenada la carpeta, obrim l'adreça del servidor web amb el navegador: http://ip_del_servidor/guifi. Si esteu treballant amb la mateixa màquina on heu instal·lat l'entorn de desenvolupament, "ip_del_servidor" serà "http://ip_del_servidor/guifi "localhost"; altrament poseu-hi l'adreça IP que toqui.
La instal·lació i la configuració de Drupal 7 es fa des del navegador web.
Elecció d'un perfil (Choose profile)
El procés d'instal·lació ens mostra dos possibles perfils: "estàndard (standard)" i "mínim (minimal). Escollim "Estàndard (standard)".
Elecció de l'idioma (Choose language)
La instal·lació per defecte es fa en anglès, però podeu descarregar-vos paquets d'idiomes addicionals o versions de Drupal que ja els incorporen. Escollim "Anglès (English)".
Verificació de requisits (Verify requirements)
Per seguir amb la instal·lació cal crear els següents directoris i fitxers amb els seus respectius permisos:
# cd /var/www/guifi # mkdir sites/default/files # chmod a+w sites/default/files # cp sites/default/default.settings.php sites/default/settings.php # chmod a+w sites/default/settings.php
Un cop fet, en recarregar la pàgina, continuarem ja al següent pas.
Configuració de la base de dades (Set up database)
En aquest pas configurarem el nom de la base de dades que crearem per desar-hi les dades de Drupal i de la web de Guifi. Per fer-ho, se'ns demana un usuari i una contrasenya:
- Nom de la base de dades (Database name): guifi
- Usuari de la base de dades: (Database username): guifi
- Contrasenya de la base de dades: (Database password): la que haguem escollit anteriorment