IMPORTANT: Degut a un error a la farga de la generalitat no es pot accedir com a usuari anonymous als fitxers dels cursos. Utilitzeu l'usuari: prova i la paraula de pas 123456
Entorn de desenvolupament guifi
De SergiTurWiki
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 guifi@192.168.2.100
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:
- Activar mod_rewrite
- Permetre els fitxers .htaccess
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
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 guifi@localhost identified by 'guifinet'; Query OK, 0 rows affected (0.00 sec) mysql> quit
Configure site:
$ sudo chmod a-w sites/default/settings.php $ sudo chmod a-w sites/default
Site name: 192.168.2.100 Email: webmaster@test.guifi.net Username: guifi Email: webmaster@test.guifi.net Paraula de pas: guifi
Finished:
No és problema:
Unable to send e-mail. Please contact the site administrator if the problem persists.
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 git@gitorious.org:~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| 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:
- Activa mod_rewrite
- Permetre els fitxers .htaccess
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
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 http://guifi.net/files/csf.gif $ sudo wget http://guifi.net/files/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.
Enviat des del mobil!
Miquel Martos
El 13/02/2012 02:28, "Jose Legido" <jose@legido.com> escribió:
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| 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
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:
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 git@gitorious.org:~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.





