Soumis par anarcat le mardi, 16 mars, 2004 - 19:21
Voici la procédure pour faire une nouvelle installation de L'Insomniaque sur un serveur donné.
Prérequis
- Apache
- PHP
- MySQL[1]
- Une copie du code source[2]
- Un backup de la base de données
Présomptions
- on installe le tout sur la machine "example.com" dans le "DocumentRoot" de apache, et donc que le "checkout" sera accessible de http://example.com/drupal/core/. Évidemment, le code peut être placé ailleurs, il faut simplement modifier les URLs en conséquence.
- une base de données a déjà été créée avec un usager/mot de passe y ayant accès
Procédure
- Faire un checkout[3] ou décompresser un backup du code source. Ceci créé une hiérarchie drupal/core, drupal/contrib et drupal/doc. C'est dans drupal/core que se trouve l'index.php qui fait rouler L'Insomniaque. drupal/core doit donc être accessible par le serveur web.
- Créer les liens symboliques: cd drupal ; sh makesymlinks.sh[4]
- créer un fichier de configuration dans core/includes. Le fichier de configuration doit être nommé comme le "base url", où les "/" et les ":" on été remplacés par des points (ici, c'est donc "example.com.drupal.core.php"). Ce fichier doit être un fichier PHP valide. Les variables à définir sont $baseurl et $dburl. L'array $languages doit aussi être modifié si on veut autre chose que l'anglais comme langue par défaut. Voir core/includes/conf.php pour des exemples et plus de détails.
- installer la DB: "gunzip -c dump.sql.gz | mysql -u user -p db" ou uploader l'image avec phpMyAdmin. Si l'on a pas d'image de la DB, on peut repartir "from scratch" avec le fichier database/core/database.mysql.
- configurations spéciales de Apache: AllowOverride All, pour permettre mod_rewrite et l'override de certaines variables PHP
- tester
Il est tout à fait possible que ceci ne fonctionne pas correctement, dans lequel cas il faudra immédiatement modifier cette documentation.
Notes
- Les images ne sont évidemments pas dans le SVN/CVS, et donc toute la gallerie sera brisée, ainsi que les images dans les blocs, à moins que le répertoire images/ soit copié sous core/.
Pour ce qui est du serveur de production, il y a quelques petits détails.
- il faut faire un checkout de la branche "stable" (svn co svn://.../inso/branches/stable)
- faire un export pour enlever tous les fichiers inutiles (svn export stable export). Ces deux étapes peuvent être fusionnées en une seule avec la commande svn export svn://.../inso/branches/stable export
- puis faire un upload sur le serveur avec rsync ou ncftp, par exemple. On ne garde pas de checkout sur le serveur de production car Subversion n'y est pas installé, et d'ailleurs, on a pas toujours d'accès "shell". Ceci a pour "side effect" de décourager le développement sur la branche "stable".
Merger les changements entre les branches
Pour faire un merge, ça nous prend un checkout de la branche stable:
$ svn co https://anarcat.ath.cx/svn/inso/branches/stable/
On vérifie la version du dernier merge:
$ cd stable ; svn log | less
r884 | anarcat | 2004-03-28 18:37:20 -0500 (Sun, 28 Mar 2004) | 1 line
merge rev 883 (install defaults) into stable
On vérifie le diff depuis cette version pour voir ce que l'on va "merger":
$ svn diff -r884:886 https://anarcat.ath.cx/svn/inso/trunk/
Le "886", c'est la version courante du repo, on l'obtient quand on fait un checkout:
A stable/core/.htaccess
Checked out revision 886.
Si tout est beau, on fait le merge:
$ svn merge -r884:886 https://anarcat.ath.cx/svn/inso/trunk/
U contrib/modules/wiki2xhtml/class.wiki2xhtml.php
U contrib/modules/extrafilters/extrafilters.module
$ svn status
M contrib/modules/wiki2xhtml/class.wiki2xhtml.php
M contrib/modules/extrafilters/extrafilters.module
On commit les changements sur la branche stable:
$ svn commit -m 'merge rev 884-886 (filter fixes) into stable'
Sending contrib/modules/extrafilters/extrafilters.module
Sending contrib/modules/wiki2xhtml/class.wiki2xhtml.php
Transmitting file data ..
Committed revision 887.
Il est important de mettre le numéro de version que l'on merge pour pouvoir faire les merges futurs plus facilement, jusqu'à ce que subversion supporte l'historique dans les merges.
--
[1] Drupal supporte d'autres DBs, mais c'est MySQL que nous utilisons
[2] ceci implique potentiellement d'avoir Subversion (SVN) d'installé.
[3] Pour faire un checkout sous SVN, on utilise une commande comme: "svn co FOO" où FOO est l'url où se trouve le "repo" du code source.
[4] si le système ne supporte pas les liens symboliques, examiner le fichier makesymlinks.sh et installer les bons fichiers à la bonne place. (Bonne chance)