Migration OddMuse

Le Tue 19 April 2016 Par pitchum  | Catégorie : misc

Tags :

 

Comment j'ai migré le site web "vitrine" de FCN de styx (sous openBSD) vers vm-styx (sous Debian).

Le résultat final

Parce que parfois c'est plus cool d'avoir la conclusion dès le début.

Oddmuse est "installé" dans /srv/code/oddmuse.pl. Ses données sont dans /srv/data/oddmuse. L'applicatif tourne avec nginx + fcgiwrap.

Les pré-requis

sudo apt-get install nginx fcgiwrap

Installons OddMuse comme des cochons

Les versions d'OddMuse à partir de 2.3.0 affichent un vilain message d'erreur dans le navigateur donc je me suis rabattu sur la v2.2 qui semble fonctionner. Sinon, on peut toujours reprendre la version exacte présente sur styx dans /var/www/cgi-bin/current.pl.

sudo mkdir /srv/code
sudo wget -O oddmuse-2.2.pl  https://raw.githubusercontent.com/kensanata/oddmuse/2.2/wiki.pl
sudo ln -s /srv/code/oddmuse-2.2.pl /srv/code/oddmuse.pl
sudo mkdir /srv/data/oddmuse
sudo chown -R www-data: /srv/data/oddmuse
# patch dégueu pour pouvoir utiliser la lib CGI Perl plus récente dans Debian
sudo sed -i 's/endform/end_form/g' /srv/code/oddmuse.pl

Configurons un virtualhost dans nginx

  access_log    /var/log/nginx/www.franciliens.net.access.log;
  error_log    /var/log/nginx/www.franciliens.net.error.log;

  # rewrite /index.html http://www.franciliens.net/cgi-bin/wiki.pl
  # deux cas, pour gérer le cas foireux franciliens.net/cgi-bin/wiki.pl?bla
  # pour lequel il faut rajouter un /
  rewrite ^/cgi-bin/wiki.pl(/.*)   $1 permanent ; # pour les vieux liens
  rewrite ^/cgi-bin/wiki.pl(.*)   /$1 permanent ; # pour les vieux liens

  location / {
    fastcgi_pass   unix:/run/fcgiwrap.socket;
    fastcgi_param  SCRIPT_FILENAME  /srv/code/oddmuse.pl;
    fastcgi_param  PATH_INFO $fastcgi_script_name;
    fastcgi_param  WikiDataDir /srv/data/oddmuse;
    include        fastcgi_params;
    index  index.html index.htm;
  }
  location /fichiers {
    alias /srv/data/fichiers;
    autoindex on;
  }
  location /org {
    alias /srv/data/orange/org;
    autoindex on;
  }

  location ~ /\.ht {
    deny  all;
  }