Redémarrage Apache gulliver sur Tuxinette
Se connecter sur gullivermodere@linux-france.org et faire :
/home/lf/gullivermodere/local/httpd/bin/apachectl restart
Installation de dokuwiki sur tuxinette
Apache 2.2 et PHP
Compilation
config.nice d'apache et de php
mkdir ~/local mkdir ~/tmp cd ~/tmp wget http://mir2.ovh.net/ftp.apache.org/dist//httpd/httpd-2.2.21.tar.bz2 bunzip2 -c httpd-2.2.21.tar.bz2 | tar xf - ./configure --enable-so --enable-http --enable-expires --enable-rewrite --enable-cgi --prefix=$HOME/local/httpd cd httpd-2.2.21 make make install cd .. wget http://fr2.php.net/get/php-5.2.17.tar.bz2/from/this/mirror bunzip2 -c php-5.2.17.tar.bz2 | tar xf - cd ~/tmp/php-5.2.17 ./configure \ --prefix=$HOME/local/httpd/php \ --with-config-file-path=$HOME/local/httpd/php \ --with-apxs2=$HOME/local/httpd/bin/apxs \ --with-bz2 \ --with-zlib make make install
Configuration apache
Points importants dans du fichier ~/local/httpd/conf/httpd.conf disponible là
Listen 8080 [...] ServerAdmin "contact (A) gulliver POING eu POINTG org" [...] # Activation PHP5 LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php php [...] <Files *.php> SetOutputFilter PHP SetInputFilter PHP </Files> [...] DocumentRoot "/home/lf/html/www.linux-france.org" [...] ServerTokens Prod ServerSignature Off [...] Include conf/sites-enabled/
Pour installer le fichier de conf préparé pour vous avec amour
cd ~/local/httpd/conf mv httpd.conf httpd.conf.orig wget http://gulliver.eu.org/~scollilieux/migration-wiki/httpd.conf
Création d'un vhost pour gulliver.eu.org.
cd ~/local/httpd/conf mkdir sites-available mkdir sites-enabled cd sites-available wget http://gulliver.eu.org/~scollilieux/migration-wiki/gulliver.eu.org cd .. ln -s $HOME/local/httpd/conf/sites-available/gulliver.eu.org $HOME/local/httpd/conf/sites-enabled
Pour info, contenu de ce fichier :
cat sites-available/gulliver.eu.org
NameVirtualHost *:8181
<VirtualHost *:8181>
ServerAdmin "contact At gulliver Dot eu Dot org"
ServerName gulliver.eu.org
ServerAlias *.gulliver.eu.org
DocumentRoot /home/lf/scollilieux/local/httpd/htdocs
ErrorLog logs/gulliver.eu.org.error.log
LogLevel warn
CustomLog logs/gulliver.eu.org.access.log combined
<Directory /home/lf/scollilieux/local/httpd/htdocs>
DirectoryIndex wiki/doku.php index.php
RewriteEngine on
RewriteBase /
RewriteRule ^(lib/.*) wiki/$1
RewriteRule ^_media/(.*) wiki/lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) wiki/lib/exe/detail.php?media=$1 [QSA,L]
RewriteRule ^_export/([^/]+)/(.*) wiki/doku.php?do=export_$1&id=$2 [QSA,L]
RewriteRule ^feed.php wiki/feed.php
Include /home/lf/scollilieux/local/httpd/conf/wikini_dokuwiki_re
direct.txt
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) wiki/doku.php?id=$1 [QSA,L]
</Directory>
<Directory /home/lf/scollilieux/local/httpd/htdocs/wiki>
AllowOverride AuthConfig FileInfo Limit
Options -Indexes -MultiViews +FollowSymLinks
</Directory>
<LocationMatch "/(data|conf|bin|inc)/">
Order allow,deny
Deny from all
Satisfy All
</LocationMatch>
</VirtualHost>
On redémarre apache :
~/local/httpd/bin/apachectl graceful
Le fichier ` $HOME/local/httpd/conf/wikini_dokuwiki_redirect.txt` permet de gérer les redirections entre l'ancien wiki et le nouveau.
Installation dokuwiki
Téléchargement et installation
cd ~/local/httpd/htdocs wget -O - "http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2012-01-25.tgz" | tar zxf - mv dokuwiki-2012-01-25 wiki
Configuration
cd ~/local/httpd/htdocs/wiki/conf/ wget -O local.php http://gulliver.eu.org/~scollilieux/migration-wiki/local.php.txt wget -O users.auth.php http://gulliver.eu.org/~scollilieux/migration-wiki/users.auth.php.txt wget -O acl.auth.php http://gulliver.eu.org/~scollilieux/migration-wiki/acl.auth.php.txt
Suppression du fichier d'installation, inutile car la conf est fournie.
cd ~/local/httpd/htdocs/wiki/ rm install.php
Personnalisation
Thème
Installation du thème [http://www.dokuwiki.org/template:a_new_day?s[]=newday newday]
cd ~/local/httpd/htdocs/wiki/lib/tpl wget -O newday.zip http://blog.chirripo.nl/wp-content/uploads/dokuwiki_template_newday_20100921.zip unzip newday.zip cd newday/images mv favicon.ico favicon.ico.orig wget -O favicon.ico http://gulliver.eu.org/~scollilieux/gulliver-favicon.ico
Plugins
Installation du plugin [http://www.dokuwiki.org/plugin:wikicalendar wikicalendar]
cd ~/local/httpd/htdocs/wiki/lib/plugins wget -O - "http://cloud.github.com/downloads/chimeric/dokuwiki-plugin-wikicalendar/plugin-wikicalendar.tgz" | tar zxf -
migration du wikini -> dokuwiki
migration des données
Téléchargement des logiciels nécessaires depuis [https://gitorious.org/migrate-to-doku/ gitorious]. Tous les scripts seront exécutés depuis le répertoire $HOME/migration-wiki
mkdir ~/migration-wiki cd ~/migration-wiki wget -O - http://gitorious.org/migrate-to-doku/migrate-to-doku/archive-tarball/master | tar zxf - mv migrate-to-doku-migrate-to-doku/* . rm -r migrate-to-doku-migrate-to-doku/
Utilisation du script synchronize.sh. Ce script ne fait pas partie de l'archive gitorious, il est adapté à tuxinette.
Le mot de passe de la base de données devra être stocké dans $HOME/var/tmp/mysql_gull.pass.
#!/bin/bash # (C) Sylvain Collilieux 2011 # Licence WTFPL http://sam.zoy.org/wtfpl/ # # Synchronizes data between wikini and dokuwiki # If $1=1 : complete export from wikini, generates rewrite_rules and comparison page # Else : only data from last dokuwiki change are exported (no rewrite or comparison # because there are not complete). ./update_dokuwiki_data.sh $1 echo "Copie vers dokuwiki" tar --directory dokuwiki/data -cf - . | tar -C ~/local/httpd/htdocs/wiki/data/ -xf - if [ "$1" == "1" ] then echo Copie du fichier de Redirection sh rewrite_rules.sh cp wikini_dokuwiki_redirect.txt ~/local/httpd/conf/ echo "Copie du fichier de comparaison des pages" sh comparaison_index.sh cp comparaison_wikini_dokuwiki.html ~/html/ fi
cd $HOME/migration-wiki sh synchronize.sh 1
Synchronisation de wikini -> dokuwiki
Une synchronisation complète a lieu 1 fois par jour. Toutes les 10 minutes de minuit à 3h et de 7h à minuit, il y a une synchronisation partielle.
La synchonisation complète peut être utile en cas de changement dans le script de conversion des pages (migrate-to-doku.py). C'est la raison de son exécution quotidienne. Cette synchonisation peut également se faire à la demande.
crontab -l 15 4 * * * cd migration_wiki ; bash synchronize.sh 1 >/dev/null 2>&1 */10 0-3 * * * cd migration_wiki ; bash synchronize.sh >/dev/null 2>&1 */10 7-23 * * * cd migration_wiki ; bash synchronize.sh >/dev/null 2>&1
Migration du site (url)
Dans cet exemple http://gulliver.eu.org/ devient le wiki (on enlève /wiki/).
Récupération du [http://www.linux-france.org/prj/lfoyer/doc/htm/cvs.fr.htm#s4 site statique de Gulliver]
CVSROOT=:ext:cvs@linux-france.org:/home4/lf/cvs/ CVS_RSH=ssh export CVSROOT CVS_RSH cd ~/tmp && mkdir cvs_work && cd cvs_work cvs checkout www.linux-france.org cd cvs_work/www.linux-france.org/lug/gulliver/
Remplacer fichier .htaccess par celui-ci
Les RewriteCond %{REQUEST_URI} !^/ml-archives/.* permettent de ne pas réécrire l'URL pour les parties statiques existantes (par exemple les archives des listes).
Envoi des données sur lfo
cvs commit 'Migration .htaccess / de Gulliver' ssh tonlogin@linux-france.org ~lf/bin/authsync_demand
La dernière commande permet de pousser le contenu du CVS sur le site (sinon attendre 20 de chaque heure).
accès à wikini
Le but est de permettre l'accès à l'ancien wiki avec l'url http://gulliver.eu.org/wikini/
Dans le [CVS de Gulliver http://www.linux-france.org/prj/lfoyer/doc/htm/cvs.fr.htm#s4] :
www.linux-france.org/lug/gulliver mkdir wikini cp wiki/.htacess wikini/ cvs add wikini/ cvs add wikini/.htaccess
Le contenu du .htaccess :
RewriteEngine on RewriteRule .*\.css - [L] RewriteRule .*\.png - [L] RewriteRule .*\.php.* - [L] RewriteRule (.*) /~scollilieux/wiki/wakka.php?wiki=$1 [QSA,L,NE,PT]
The Button
À ce stade, dokuwiki devrait être à jour avec les données de wikini. Pour finaliser la migration, il faut :
- supprimer les tâches de synchronisation de la cron
- modifier le fichier .htaccess de la racine du site pour activer le proxy
Ce script devra être lancé par le compte qui héberge dokuwiki. Pour lancer ce script, il est nécessaire d'être connecté sur tuxinette avec sa clef SSH et d'activer l'agent forwarding : ssh -A linux-france.org.
<img src="http://gulliver.eu.org/~scollilieux/migration-wiki/bouton.png" alt="LE bouton" border="0" /> bouton.sh
Une étape n'a pas été faite avec ce script car faite après la migration. Le fichier .htaccess disponible sur http://gulliver.eu.org/~scollilieux/migration-wiki/wiki_htaccess doit être mise dans le CVS en remplacement du fichier www.linux-france.org/lug/gulliver/wiki/.htaccess. C'est ce fichier qui contient les redirections entre les anciens noms de pages et les nouveaux (le tout issu du script de migration).
