{{tag>groupe}}
====== Créer un environnement de test des outils ubuntu-fr ======
===== Pré-requis =====
Il est recommandé d'avoir des connaissances de base et des programmes standards du web pré-installés pour pouvoir se monter son environnement de test ubuntu-fr. Voici une liste non exhaustive des éléments à avoir et connaître. Si il en manque, n'hésitez pas à les ajouter.
* Savoir utiliser le [[:terminal]] et ses commandes de base
* Avoir installé et savoir utiliser le gestionnaire de versions [[:bzr|bazaar]]
* Avoir un serveur web ([[:apache]] ou [[:nginx]]) fonctionnel avec le langage de script [[:php]] et le serveur de base de données [[:mysql]]
* Savoir définir des hôtes virtuels et/ou altérer son fichier /etc/hosts pour définir de faux DNS
Nous ne détaillerons pas la configuration des outils ci-dessus (virtual hosts, configuration, …).
Pour tester la documentation, reportez-vous à [[:utilisateurs:fabux:brouillons:ikiwllatsinubfr|cette page]] plus récente
===== Les différents outils utilisés =====
La liste complète de nos projets web se trouve sur [[https://launchpad.net/ubuntu-fr|launchpad]].
* [[https://launchpad.net/ubuntu-fr-static| les éléments statiques]] avec du HTML, du CSS et du JS, pour les thèmes et autres éléments communs.
* [[https://launchpad.net/ubuntu-fr-guide| les guides système]] générés en suivant la [[https://wiki.ubuntu.com/DocumentationTeam/SystemDocumentation/BuildingDocumentation|documentation officielle]]
* [[https://launchpad.net/ubuntu-fr-tour| la visite guidée]] générée avec la traduction du [[https://launchpad.net/ubuntu-online-tour|projet officiel]]
* [[https://launchpad.net/ubuntu-fr-doc| la documentation]] utilise [[http://dokuwiki.org|dokuwiki]]
* [[https://launchpad.net/ubuntu-fr-forum| le forum]] utilise [[http://fluxbb.org/|fluxbb]]
* [[https://launchpad.net/ubuntu-fr-planet| le planet]] utilise [[https://drupal.org/|Drupal]]
* [[https://launchpad.net/ubuntu-fr-www| le portail Ubuntu-fr.org]] utilise [[https://drupal.org/|Drupal]]
* [[https://launchpad.net/ubuntu-fr-traduire| le blog des traducteurs]] utilise [[https://drupal.org/|Drupal]]
* [[https://launchpad.net/ubuntu-party| le site ubuntu-party]] utilise [[http://wordpress.org/|wordpress]]
===== Installation =====
Nous installerons pour la suite tout dans le dossier **/var/www/** qui est celui par défaut de la plupart des serveurs web. Commençons par créer un dossier de travail **ubuntu-fr**
cd /var/www/
sudo mkdir ubuntu-fr
Les serveurs web tournent habituellement avec l'utilisateur système **www-data**, il faut donc bien penser à vérifier que cet utilisateur a les droits d'écriture et de lecture sur le dossier créé. De même votre compte utilisateur doit avoir les droits d'écrire et de lire sur le dossier, le plus simple étant de l'ajouter au groupe **www-data**. Si vous avez des soucis de droits à un moment ou un autre, c'est souvent à cause de ces soucis de propriété des fichiers et des permissions dessus.
Pour donner les droits à **www-data** sur notre nouveau dossier :
sudo chown -R www-data:www-data /var/www/ubuntu-fr
sudo chmod -R ug+rw /var/www/ubuntu-fr
==== Les éléments « statiques » ====
Les éléments statiques ne nécessitent aucune configuration particulière, mis à part la configuration des hôtes virtuels associés. Pour les installer on va se servir simplement de la commande **bzr**.
cd /var/www/ubuntu-fr/
bzr branch lp:ubuntu-fr-static
bzr branch lp:ubuntu-fr-guide
bzr branch lp:ubuntu-fr-tour
Chaque commande crée son propre dossier dans lequel se trouvent tous les fichiers. Vous pouvez faire suivre la commande d'un nom de dossier personnalisé si vous ne souhaitez pas avoir le nom par défaut.
==== La documentation ====
On récupère pour commencer le code présent sur Launchpad avec la commande **bzr**.
cd /var/www/ubuntu-fr/
bzr branch lp:ubuntu-fr-doc
Les fichiers obtenus sont la copie de ce que nous avons en production, mais il manque quelques éléments.
=== Les données ===
Le dossier **data** contenant les pages, les index, et tout un tas d'autres informations est manquant. Vous pouvez reprendre le dossier data fourni avec un dokuwiki normal pour le remplacer, et le copier dans le dossier de la documentation (dans **/var/www/ubuntu-fr/ubuntu-fr-doc/**).
Si vous placez cette documentation sur un serveur accessible de l'extérieur, il est recommandé d'activer le robots.txt en utilisant le fichier d'exemple fournit afin que votre version ne soit pas indexée par les moteurs de recherche.
cd /var/www/ubuntu-fr/ubuntu-fr-doc
cp robots.txt.dist robots.txt
=== La configuration ===
Ensuite nous allons configurer cet outil relativement à votre installation. Tout se passe dans le dossier **conf** ou vous avez un fichier **local.protected.php.dist** qui contient tous les éléments propres à l'environnement local.
cd /var/www/ubuntu-fr/ubuntu-fr-doc/conf
cp local.protected.php.dist local.protected.php
On [[:tutoriel:comment_modifier_un_fichier|modifie ce fichier]] qui n'a pas grand chose à changer au final. Attention de bien laisser la ligne qui permet d'éloigner les moteurs de recherche :
$conf['is_dev'] = 1;
Ensuite le deuxième élément simple à modifier est l'emplacement des fichiers statiques, par défaut réglé sur nos serveurs de développement. Pointez la valeur de **$conf['static_host']** sur votre propre serveur.
=== L'authentification ===
Enfin, la partie la plus compliquée est l'authentification.
Elle est réglée par défaut à **$conf['authtype']='plain';**. Cette configuration est suffisante pour faire vos tests, mais elle ne fonctionnera que si vous créez le fichier **users.auth.php** en renseignant un ou plusieurs comptes utilisateurs, ce fichier étant présent dans le même dossier de configuration.
Pour utiliser la base de donnée du forum comme nous, il faudra commenter la ligne contenant ce **plain** et dé-commenter tout le bloc précédent en renseignant les éléments d'authentification à la base de donnée de votre version du forum. À partir de là, la configuration des utilisateurs et des groupes d'utilisateurs est faite par le forum.
=== Astuces ===
Si on souhaite avoir plusieurs versions du code de la documentation (la version en production et une ou plusieurs versions de travail avec ses propres modifications pour les tester par exemple), il est intéressant d'externaliser le dossier **data** ainsi que le fichier de configuration **local.protected.php** et de les remplacer par des liens symboliques. Ceci permet par exemple de supprimer facilement un dossier avec le code sans toucher aux données, et également de ne pas dupliquer ces données entre les différentes versions de travail.
==== Le forum ===
On récupère pour commencer le code présent sur Launchpad.
cd /var/www/ubuntu-fr/
bzr branch lp:ubuntu-fr-forum
Les fichiers obtenus sont la copie de ce que nous avons en production, mais il manque quelques éléments.
=== La base de données ===
Créez une base de donnée avec un utilisateur et son mot de passe. Pré-chargez les tables et données de test contenus dans ce [[http://doc.ubuntu-fr.org/_media/groupes/ubuntu-fr-webteam/ufr_forum_test.sql.bz2|fichier sql (~7Mio)]].
mysql -u [utilisateurbdd] -p [nombdd] < ufr_forum_test.sql
=== La configuration ===
Tout se passe dans le fichier config.php, et il vous faudra au préalable avoir une base de donnée prête et préchargée avec les tables.
cd /var/www/ubuntu-fr/ubuntu-fr-forum
cp config.php.example config.php
Renseignez dans ce fichier les éléments pour accéder à votre base de données, mais surtout laissez le préfixe en place (c'est celui utilisé dans notre fichier sql). Vous pouvez là aussi définir l'emplacement de vos fichiers statiques, en précisant le chemin vers le thème employé. Il y a également une référence à l'outil de statistique **piwik** que vous pouvez passer à 0.
Connectez-vous ensuite sur le forum (si tout s'est bien passé) afin de modifier les derniers points de configuration dans la partie administration > options (principalement les URL de votre instance du forum), sans quoi certaines actions seront désactivées ou certaines redirections seront mauvaises.
Pour finir videz le dossier de cache du forum et rafraîchissez la page. Il vous demandera peut être une mise à jour de la base de donnée après cela.
cd /var/www/ubuntu-fr/ubuntu-fr-forum
rm cache/*
=== Les accès ===
Les comptes et accès ont été anonymisés, et quelques comptes de tests sont disponibles :
^ identifiant ^ mot de passe ^ privilèges ^
| admin | admin | Tous les droits |
| moderateur | modo | modération de base |
| membre | membre | utilisateur normal |
| modoplus | modoplus | modérateur avancé |
| adminwiki | adminwiki | administrateur de la doc |
^ tu peux aussi utiliser ton numéro utilisateur et le mot de passe associé à tes privilèges sur le forum ^^^
Ces accès sont les même sur la documentation si tu as configuré celle-ci pour utiliser la base de donnée du forum.
==== Les sites sous Drupal ====
Les branches des sites sous Drupal ne contiennent que les éléments propres aux sites, et non le code de Drupal.
Dans les grandes lignes, on télécharge et décompresse la dernière version de Drupal 7, on récupère le code sur launchpad dans son propre dossier, et on lie tout ça de façon propre. On garde le code présent sur launchpad en dehors du dossier de Drupal pour pouvoir réutiliser ce dernier qui reste propre, juste en le copiant autant de fois que nécessaire et en rechangeant le lien symbolique.
=== Le portail ===
Dans tous les cas on commence par le portail.
cd /var/www/ubuntu-fr/
wget http://drupalfr.org/sites/default/files/drupal-7.latest.tar.gz
tar xvzf drupal-7.*
mv drupal-7.* drupal-www
bzr branch lp:ubuntu-fr-www
cd drupal-www
rm -R sites
ln -s ../ubuntu-fr-www/sites sites
Nous utilisons une base SQLite dont vous pouvez [[http://doc.ubuntu-fr.org/_media/groupes/ubuntu-fr-webteam/ufr_www_test.sqlite.bz2|télécharger un exemple (336ko)]], mais vous pouvez très bien utiliser un autre moteur de base de donnée. Pour la configuration de la base et de votre installation, il faut [[:tutoriel:comment_modifier_un_fichier|modifier le fichier]] sites/default/settings.php.
cd /var/www/ubuntu-fr/ubuntu-fr-www/sites/default
cp settings.php.exemple settings.php
Renseignez dans ce fichier l'emplacement de votre base SQLite, et les URL de votre configuration personnelle pour les différentes variantes. Le portail étant sur le dossier **default** il répondra correctement à toutes les URL.
Un accès est pré-configuré avec comme identifiant **admin** et mot de passe **admin**.
=== Le planet ===
On continue avec le planet.
cd /var/www/ubuntu-fr
bzr branch lp:ubuntu-fr-planet
cd drupal-www/sites
ln -s ../../ubuntu-fr-planet/sites/planet.ubuntu-fr.org planet.ubuntu-fr.org
cp sites.php.exemple sites.php
La dernière commande permet de modifier les URL d'accès suivant votre configuration locale. [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] sites.php et renseignez les bonnes valeurs pour les URL locales.