IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Drupal 6.29

Introducció

3 casuístiques:

  • Voler obtenir un entorn de proves propi basat en la web de guifi.net
  • Crear un entorn de proves propi de la web de guifi.net per tal de poder desenvolupar sense afectar al sistema de producció
  • Crear una màquina virtual per a compartir amb tota la comunitat guifi i facilitat i afavorir la introducció en el desenvolupament del codi font de guifi

Requeriments

  • Sistema operatiu Linux. En aquest exemple hem utilitzat Ubuntu. Si és tracta d'un sistema pensat per estar en explotació us recomano l'ús d'una versió de servidor (el nucli està adaptat per al que volem fer). Si necessiteu entorn gràfic el podeu instal·lar instal·lant la tasca (vegeu tasksel ubuntu-desktop).
  • LAMP: Linux, Apache, Mysql i PHP
  • Drupal
  • Gitorious
  • wget
  • Mòdul GD PHP

Virtual Box

Aquest exemple s'ha realitzat en una màquina virtual amb Virtual Box 4.1 i una Ubuntu Server 11.10 de 32 bits. El Virtual Box s'ha instal·lat dels repositoris de Virtual Box seguint les instruccions de:

https://www.virtualbox.org/wiki/Linux_Downloads

La màquina virtual creada té les opcions per defecte del assistent per a crear màquines virtuals.

IMPORTANT: En un entorn d'explotació és millor instal·lar un sistema de 64 bits. S'ha escollit una màquina virtual de 32 bits per tal que sigui més compatible i es pugui executar en més sistemes.

Les característiques de la màquina virtual són:

  • Localització en català
  • Actualitzada amb apt-get dist-upgrade (--acacha 12:19, 3 feb 2012 (UTC))
  • Nom màquina: guifi
  • Sense LVM
  • Usuari: guifi
  • Paraula de pas: guifi
  • Una targeta de xarxa. Configurada en mode bridge
  • Adreça IP: 192.168.2.100
  • Màscara: 255.255.255.0

Connexió a la màquina per SSH

Podeu connectar-vos amb

$ ssh [email protected]

Abans però heu de tenir una targeta de xarxa connectada a la mateixa xarxa lògica. Utilitzeu IP Aliasing:

$ sudo ifconfig eth0:1 192.168.2.101 up

Altres programes instal·lats al servidor

$ sudo apt-get install ssh byobu vim joe openssh-server whois tcpdump traceroute ipcalc nmap dnstracer 
ethtool geany gnome-disk-utility gparted molly-guard subversion debconf-utils gnupg

La màquina virtual també disposa de l'eina phpmyadmin instal·lada i configurada.

Instal·lació de LAMP

Per instal·lar LAMP:

$ sudo tasksel install lamp-server

El usuari i paraula de pas de l'administrador de MySQL és:

  • usuari: root
  • Paraula de pas: guifi

Llibreria gd de PHP

Cal que la instal·leu amb:

$ sudo apt-get install php5-gd

Configuració d'Apache

Vegeu també Clean URLs

Drupal utilitza molt les anomenades URLs netes (Clean URLs). Per que les URLs netes funcionin cal configurar Apache:

IMPORTANT: Amb Ubuntu Server i altres sistemes la carpeta /var/www no és una bona carpeta per instal·lar Drupal ja que aquesta carpeta per defecte té una configuració que ignora els fitxers .htaccess

Primer farem permetre els fitxers .htaccess

Ara configurem Apache per que permeti els fitxers .htaccess

$ sudo joe /etc/apache2/sites-available/default

Busqueu tots els:

AllowOverride none

I els canvieu per:

AllowOverride All

I apliqueu els canvis:

$ sudo /etc/init.d/apache2 restart

o

$ sudo service apache2 restart

En segon lloc:

Per comprovar que el mòdul rewrite està actiu:

$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
 service apache2 restart
$ sudo service apache2 restart

Consulteu també Instal·lació de Drupal.

Instal·lació de Drupal

S'utilitza la versió de Drupal 6. L'última versió de Drupal 6.x, actualment (--acacha 12:50, 3 feb 2012 (UTC)) és la 6.24, que podeu trobar a la pàgina:

http://drupal.org/project/drupal

NOTA: L'instal·larem com a aplicació principal: pàgina per defecte del servidor

Per descarregar-la

$ cd /var
$ sudo wget http://ftp.drupal.org/files/projects/drupal-6.24.tar.gz
$ sudo mv www www.inicial
$ sudo tar xvzf drupal-6.24.tar.gz
$ sudo cp -r drupal-6.24.tar.gz www

Ara configurem Apache per que permeti els fitxers .htaccess

$ sudo joe /etc/apache2/sites-available/default

Busqueu tots els:

AllowOverride none

I els canvieu per:

AllowOverride All

I apliqueu els canvis:

$ sudo /etc/init.d/apache2 restart

o

$ sudo service apache2 restart


Ara només cal seguir els passos de l'assistent d'instal·lació:

http://ADREÇA_IP_SERVIDOR 

Si no heu canviat la IP per defecte de la màquina virtual:

http://192.168.2.100

NOTA: Recordeu que per a poder-vos connectar heu de estar al mateix rang de xarxa

Jzaragoza drupal1.jpeg

Guió:

  • Install in english
  • Verify requirements:
$ cd /var/www
$ sudo cp sites/default/default.settings.php sites/default/settings.php
$ sudo chmod o+w sites/default/settings.php
$ sudo chmod o+w sites/default

Set up database

$ sudo mysql -p
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE guifi_test;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL on guifi_test.* to [email protected] identified by 'guifinet';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Jzaragoza drupal3.jpeg

Configure site:

$ sudo chmod a-w sites/default/settings.php
$ sudo chmod a-w sites/default
Site name: 192.168.2.100
Email: [email protected]
Username: guifi
Email: [email protected]
Paraula de pas: guifi
Jzaragoza drupal4.jpeg
Jzaragoza drupal5.jpeg

Finished:

No és problema:

Unable to send e-mail. Please contact the site administrator if the problem persists.
Jzaragoza drupal6.jpeg

Recursos:


Mòduls addicionals

Ara anem a carregar els mòduls indispensables per instal·lar guifi dins de drupal. Els mòduls els posarem a sites/all/modules:

$ cd /var/www
$ sudo mkdir sites/all/modules
$ cd sites/all/modules

Ara instal·leu git:

$ sudo apt-get install git

Ara carreguem el mòdul drupal-budgets:

$ sudo git clone git://gitorious.org/guifi/drupal-budgets.git budgets

Ara el principal de guifi:

Per a crear un entorn propi que simplement és una còpia (accés anònim) o fer l'entorn virtual:

$ sudo git clone git://gitorious.org/guifi/drupal-guifi.git guifi

Per a crear un espai propi i poder fer modificacions (NO EXECUTEU AQUESTA COMANDA si heu executat l'anterior):

$ sudo git clone [email protected]:~acacha/guifi/acacha-drupal-guifi.git guifi

IMPORTANT: Fixeu-vos que el mòdul budget simplement el baixem en mode lectura (no hi volem fer cap canvi). En canvi, el mòdul "drupal-guifi" que estic clonant és el del meu repositori (acacha). Ho fem així per tal de poder fer canvis a la copia. Poseu els vostre nom d'usuari de gitorious per al vostre cas. Això que fem és el que s'anomena un fork, i és possible que els canvis que fem es puguin passar al desenvolupadors principals per incorporar-los a la branca principal de desenvolupament

Més mòduls ( WebForm (http://drupal.org/project/webform)):

$ sudo bash -c "wget -q -O - http://ftp.drupal.org/files/projects/views-6.x-2.16.tar.gz | tar zxv"

Mòdul Views (http://drupal.org/project/views):

$ sudo bash -c "wget -q -O - http://ftp.drupal.org/files/projects/webform-6.x-3.15.tar.gz | tar zxv"


Mòdul i18n:

$ sudo bash -c "wget -q -O - http://ftp.drupal.org/files/projects/i18n-6.x-1.10.tar.gz%7C tar zxv"

Aquests són els imprescindibles, altres mòduls són:

schema, devel, potx, i18n, l10n_client, languageicons, language_sections, diff, captcha, captcha_pack, event, views_slideshow, cck, fckeditor, image, image_filter. 

TODO (d'un altre lloc vaig aconseguir aquesta informació).

schema, devel ,potx, budgets, guifi, i18n, l10n_client, languageicons, language_sections, diff, captcha, captcha_pack, event views, views_slideshow, cck, fckeditor, image, image_filter, webform

Els següents mòduls són desenvolupats per guifi:

budgets, guifi

El tema oficial "theme_guifinet2011" (luego veremos como clonar el repositorio git de este tema).

Clean URLs

Vegeu també Configuració d'Apache

Drupal utilitza molt les anomenades URLs netes (Clean URLs). Per que les URLs netes funcionin cal configurar Apache:

IMPORTANT: Amb Ubuntu Server i altres sistemes la carpeta /var/www no és una bona carpeta per instal·lar Drupal ja que aquesta carpeta per defecte té una configuració que ignora els fitxers .htaccess

Per comprovar que el mòdul rewrite està actiu:

$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
 service apache2 restart
$ sudo service apache2 restart

Altres:

Obtenir la base de dades de desenvolupament

La podeu obtenir amb:

$ sudo wget http://www.guifi.net/guifi66_devel.sql.gz

Instal·lar la base de dades

Un cop teniu la base de dades per tal d'instal·lar-la:

$ sudo gunzip guifi66_devel.sql.gz
$ mysql -u root -p guifi_test < guifi66_devel.sql

Característiques de la base de dades

  • Conté totes les dades a data ????
  • Els usuaris tenen tots la paraula de pas guifi
  • L'usuari administrador és: webmestre i la paraula de pas: guifi

Afinar la instal·lació

Cal comprovar que els directoris "files" i "tmp" del directori d'instal·lació de drupal tenen permissos d'escriptura per a l'usuari del servidor web, cal fer el mateix amb la carpeta "files/nanostation" que contindrà els arxius unsolclic de les antenes Ubiquiti:

$ cd /var/www
$ sudo mkdir {files,files/nanostation,tmp}
$ sudo chown root:www-data {files,files/nanostation,tmp}
$ sudo chmod 775 {files,files/nanostation,tmp}

Per comprovar altres possibles errors aneu a a la web i entreu com webmestre (contrasenya guifi) a la pàgina d'administració i aneu a Report Status:

http://IP_SERVIDOR/admin/reports/status 

També aneu a la secció "Performance":

http://IP_SERVIDOR/admin/settings/performance 

i deshabiliteu:

  • L'ús de la memòria cau
  • Optimització
  • Compressió

Ens interessa que els canvis que fem sobre els arxius es vegin automàticament.

Status report

Aneu a la URL:

http://IP/admin/reports/status

Alguns dels possibles errors i les seves solucions:

File system Not writable

Si us apareix:

File system	Not writable
The directory files does not exist. You may need to set the correct directory at the file system settings page   
or change the current directory's permissions so that it is writable. 

Consulteu l'apartat Afinar la instal·lació:

Module and theme update status Not secure!

Si us apareix:

Module and theme update status	Not secure!
There are security updates available for one or more of your modules or themes. To ensure the security of your  
server, you should update immediately! See the available updates page for more information.

Això és que hi han actualitzacions de seguretat d'alguns dels mòduls. Instal·leu-les.

Database updates Out of date

TODO:

Database updates	Out of date
Some modules have database schema updates to install. You should run the database update script immediately.

Obtenint el codi font de guifi

El codi font de Guifi es troba a la web:

http://gitorious.org/

NOTA: Obtindreu informació obsoleta en múltiples llocs d'Internet (Strike-through text) on us dirà que s'utilitza el repositori subversion de la farga. Aquest repositori es va descartar.

EL primer que heu de fer és obtenir un usuari de gitorious. Un cop el tingueu aneu a la web del projecte drupal-guifi:

https://gitorious.org/guifi/drupal-guifi

Feu clic al botó Clone Repository. Us demanarà que primer afegiu les vostres claus públiques SSH. Per crear claus públiques consulteu claus SSH. Un cop teniu les claus creades la consulteu amb:

$ cat ~/.ssh/id_dsa.pub

El que aparegui és el que heu de posar al camp de text del formulari que us mostra gitorious. Torneu a:

https://gitorious.org/guifi/drupal-guifi

I tornar a demanar la clonació. Us demanara un nom, per defecte us creara un nom per al clon a partir del vostre nom d'usuari i el nom del projecte que intenteu clonar. En el meu cas he escollit:

acacha-drupal-guifi

Si us espereu una mica us crearà el repositori i tindreu una web similar a:

https://gitorious.org/~acacha/guifi/acacha-drupal-guifi

Altres mòduls que també haureu de clonar són:

Instal·lar el tema de guifi

Cal que feu el següent:

$ sudo mkdir sites/all/themes
$ cd sites/all/themes
$ sudo git clone git://gitorious.org/guifi-web/theme_guifinet2011.git theme_guifinet2011

IMPORTANT: El tema no s'activara automàticament, feu:

Cal entrar a la web com administrador (usuari: webmestre i paraula de pas: guifi) anar a Administración de temas:

http://IP/ca/admin/build/themes
DrupalThemesGuifi.png



DrupalThemesGuifi2.png



DrupalThemesGuifi3.png



Modifiqueu el tema de guifi i el guardeu sense canviar res. Es generaran uns fitxers a la carpeta:

/var/www/files

I gravar sense tocar cap opció.

Ara també cal que obtingueu el logo de guifi, el logo dels comuns i el favicon:

$ cd /var/www/files
$ sudo wget csf.gif
$ sudo wget guifi.net_logo.gif
$ sudo wget http://guifi.net/files/guifi.net_favicon.ico

Instal·lació dels idiomes

La base de dades guifi.net que hem importat té habilitats múltiples idiomes per defecte, però les traduccions no estan instal·lades al sistema.

Per sol·lucionar aquest problema cal anar a:

http://localize.drupal.org/

I obtenir els fitxer po, per exemple el de català

$ cd /var/www
$ sudo wget http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.24.ca.po
$ sudo wget http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.24.es.po
$ sudo wget http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.24.gl.po
$ sudo wget http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.24.eu.po
$ sudo wget http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.24.fr.po

NOTA: A la màquina virtual els fitxers po es troben a /home/guifi/Guifi

Els idiomes en que es troba la interfície de la web de guifi són:

English Català Castellano Galego Français Euskara

Ara cal entrar a l'apartat d'administració com a webmestre:

http://IP_DRUPAL/admin/settings/language

I busqueu l'enllaç a importar:

http://IP_DRUPLA/ca/admin/build/translate/import

He importeu els fitxers po.

Mapes

IMPORTANT: Google obliga que per tal de poder utilitzar el API de Google Maps es faci en una URL pública, és a dir cal indicar des de quin domini voleu utilitzar l'API i per tant només podeu utilitzar la màquina virtual si la feu pública a Internet amb un nom de DNS. Nota: tampoc permet utilitzar una adreça IP

TODO:

http://192.168.111.51/ca/guifi_zones

TODO:

Els ultims canvis basicament eren per aixo, al passar de fgs(obsolet) a mapserv-gci el format necessitava parametres nou i/o doferents als fixers .map

En fedora14 on hi ha l'entron en producció aquest parametre que has afegit no el necessita, suposo que son versions de mapserv diferents. De totes formes li afegire al .map viam sino es queixa i si no ho fa, ho integrarem al codi.


   Potser per una versió diferente de mapserv em donava el error:
   msWMSDispatch(): WMS server error. WMS request not enabled. Check
   wms/ows_enable_request settings.
   Per si algú el serveix, ho he vist amb el firebug mirant les crides
   individuals que feia de les capes, per exemple:
   http://guifi.net/cgi-bin/mapserv?map=/home/guifi/maps.guifi.net/guifimaps/GMap.map&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=Nodes,Links&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&SRS=EPSG:4326&BBOX=2.548828125,41.57436130598913,2.5927734375,41.60722821271716&WIDTH=256&HEIGHT=256
   He afegit al fitxer GMap.map la línia:
      OWS_ENABLE_REQUEST "*"
   dintre de METADATA
   El cap de setmana que ve tindré una estona actualitzaré el wiki.
   SAX!

Mòduls drupal de guifi

Hi ha dos:

  • drupal-guifi: el mòdul de guifi principal que adapta drupal a les necessitats de guifi.
  • drupal-budgets: és el mòdul que permet crear budgets de guifi


Troubleshooting

Call to undefined function i18nmenu_translated_tree()

TODO:

$ sudo tail -f /var/log/apache2/error.log
[Fri Feb 03 18:30:16 2012] [error] [client 192.168.111.57] PHP Fatal error:  Call to undefined function i18nmenu_translated_tree() in /var/www/sites/all/themes/theme_guifinet2011/page-front.tpl.php on line 52

Cal instal·lat el mòdul de i18n:

http://drupal.org/project/i18n
$ cd /var/www/sites/all/modules
$ sudo bash -c "wget -q -O - http://ftp.drupal.org/files/projects/i18n-6.x-1.10.tar.gz%7C tar zxv"


Depuració. /var/log/apache2/error.log. Exemple: File does not exist: /var/www/files

TODO:

Si us apareix l'error:

$ sudo tail -f /var/log/apache2/error.log 
[Fri Feb 03 18:20:49 2012] [error] [client 192.168.111.57] File does not exist: /var/www/files, referer:  http://192.168.111.51/ca/admin/build/themes

a:

http://192.168.111.51/ca/admin/settings/file-system

Poseu els path absoluts

SistemaFitxersGuifi.png


404 Not Found errors

Si us dona aquest tipus d'errors, per exemple al accedir a:

http://IP_SERVIDOR/ca

Segurament és que el servidor Apache o no té el mòdul mod_rewrite actiu o heu instal·lat Drupal en una carpeta on no es poden utilitzar els fitxer .htaccess. Vegeu:

Entorn_de_desenvolupament_guifi#Clean_URLs


La pàgina de guifi es veu sense fulls d'estil

Si vegeu la pàgina com a:

PaginaGuifiSenseEStils.png

Si la pàgina no es veu amb la presentació correcta potser us heu deixat d'instal·lar el tema de guifi?

Assegureu-vos que a més d'instal·lar-lo, que entreu a:

http://192.168.111.51/admin/build/themes

Entre a modificar el tema de guifi i tot i que no cal modificar res gaurdeu-lo. En aquest moment se us aplicarà el tema.

Si pel que sigui se us queda enganxat el tema i no hi ha manera, torneu a instal·lar la base de dades:

$ mysql -u root -p guifi_test < guifi66_devel.sql

I seguiu els passos indicats en aquest apartat un altre cop.

Consulteu també:


Permission denied (publickey)

Si al obtenir una copia d'un repositori us dona l'error:

$ sudo git clone [email protected]:~acacha/guifi/acacha-drupal-guifi.git guifi
Cloning into guifi...
The authenticity of host 'gitorious.org (87.238.52.168)' can't be established.
RSA key fingerprint is 7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitorious.org,87.238.52.168' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

És que cal que tingueu la clau privada SSH que pertoca a la màquina.


Call to undefined function guifi_zone_load() in /var/www/drupal/includes/menu.inc on line 412

Pot donar diversos errors al cridar aquesta o altra funció, possiblement per problemes amb la caché del drupal al haver fet recuperació d'un backup. Habitualment surt la web en blanc.

Per sol·lucionarlo cal esborrar la caché perquè es refaci bé sense problemes:

 Al executar la comanda 'drush' pot donar l'error "Restoring the Anonymous (user ID 0) user record"
 Aquest es pot sol·lucionar seguint aquests pasos: http://drupal.org/node/1029506

Un cop fet això pot sortir l'error dels fulls d'estil explicat abans: veure sol·lució

Vegeu també

Enllaços externs