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").

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:

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 guifidev;
  • 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, l'usuari i la contrasenya que hem creat anteriorment, per desar-hi les dades de Drupal i de la web de Guifi. Recuperem les dades introduïdes anteriorment:

  • Nom de la base de dades (Database name): guifidev
  • Usuari de la base de dades: (Database username): guifi
  • Contrasenya de la base de dades: (Database password): la que haguem escollit anteriorment

Les introduïm al formulari i procedim amb la instal·lació. Si tot va bé, la pàgina ens informarà del procés d'instal·lació de mòduls, etc. i acabarà en uns segons.

Configuració del lloc web (Configure site')

Abans d'acabar la configuració de Drupal, cal introduir algunes dades més. En primer lloc, la informació bàsica del lloc web:

  • Informació del lloc (Site information)
    • Nom del lloc web (Site name): podeu escollir el nom que més us agradi, com "Desenvolupament Guifi", etc.
    • Adreça de correu del lloc web (Site e-mail address): poseu-hi la vostra adreça de correu electrònic -en qualsevol cas, no configurarem el correu electrònic--

A continuació, l'usuari que tindrà permisos per administrar el lloc web:

  • Compte de manteniment del lloc (Site maintenance account)
    • Nom d'usuari (Username)': guifi o un altre, si us convé més
    • Correu electrònic (E-mail address): poseu-hi la vostra adreça de correu electrònic
    • Contrasenya (Password): podeu posar-hi la mateixa contrasenya que heu posat anteriorment a la base de dades

Alguns paràmetres opcionals respecte al servidor web es poden ajustar:

  • Paràmetres del servidor (Server settings)
    • País per defecte (Default country): escolliu el país on us trobeu
    • Zona horària per defecte (Default time zone): escolliu la vostra zona horària

Finalment, configurem les opcions d'actualització:

  • Notificacions d'actualitzacions (Update notifications)
    • País per defecte (Check for updates automatically ): sí
    • Rebre notificacions per correu electrònic (Receive e-mail notifications ): no

Restabliment dels permisos dels fitxers de configuració

Per acabar, és convenient restablir els permisos dels fitxers creats anteriorment:

# cd /var/www/guifi
# chmod a-w sites/default/files
# chmod a-w sites/default/settings.php

Això deixarà llesta la instal·lació i configuració de Drupal 7.

Descàrrega i instal·lació del codi font per al desenvolupament de la web de Guifi.net

El codi font de la web de Guifi.net (és a dir, el codi font dels diferents mòduls per a Drupal es troba al GitHub de Guifi. En aquesta secció s'explica com descarregar-lo i integrar-lo a l'entorn de desenvolupament de Drupal 7 que acabem de configurar.

Instal·lació de Git

Utilitzarem Git per clonar el codi font de la web des del repositori de GitHub. Instal·lem els paquets "git" i els requisits:

  • Debian / Ubuntu
# apt-get install git

Descàrrega del codi font de la web de Guifi.net

Amb el compte d'usuari normal, clonarem els diferents mòduls de Drupal al directori de l'usuari:

$ cd ~
$ git clone https://github.com/guifi/drupal-guifi.git
$ git clone https://github.com/guifi/drupal-theme_guifinet2011.git
$ [opcional] git clone https://github.com/guifi/drupal-budgets.git

Ús de la branca de Drupal 7

Actualment el codi font de la branca "master" conté el mòdul Guifi per a la versió 6 de Drupal. El codi en desenvolupament per a Drupal 7 és a la branca drupal7'. La clonem així:

$ cd drupal-guifi
$ git checkout -b drupal7 origin/drupal7

El mòdul "budgets" encara no està portat a Drupal 7.

Instal·lació i activació del mòdul drupal-guifi a Drupal

Des del terminal, amb l'usuari "root" o posant l'ordre "sudo" davant, enllaçarem els mòduls i el tema de Guifi a la carpeta "sites/all/modules" i "sites/all/themes"Drupal:

# cd /var/www/guifi/sites/all/modules
# ln -s ~<<nom_de_l'usuari_normal>>/drupal-guifi guifi
# [opcional] ln -s ~<<nom_de_l'usuari_normal>>/drupal-budgets budgets
# cd /var/www/guifi/sites/all/themes
# ln -s ~<<nom_de_l'usuari_normal>>/drupal-theme_guifinet2011 guifinet2011

Amb el navegador web, iniciem sessió amb l'usuari d'administració que hem creat i accedim a l'apartat "Modules" de Drupal (http://ip_del_servidor/guifi/?q=admin/modules). Al final de tot hi trobarem el mòdul "guifi.net", que activarem.

Eines de l'usuari