Table des matières

Installer HumHub sous virtualmin-Debian

Contexte

Cette notice décrit l'installation de HumHub sur un serveur virtuel géré par Virtualmin, sous Debian 8 (Jessie).

Les choix suivants ont été faits :

Prérequis

Pour une installation en mode tarball, la bibliothèque php-ldap est optionnelle3). Elle est obligatoire pour une installation via git + composer.
# apt-get update
# apt-get install php5-ldap
# service apache2 restart

Récupérer le code de HumHub

Source : Installation (en) (humhub.org).

Le fait que l'on installe directement dans public_html oblige à quelques petites manipulations supplémentaires.

cd public_html
git clone https://github.com/humhub/humhub.git
### variante 1
tar czf myhumhub.tgz humhub
tar xf myhumhub.tgz --strip-components=1
rm -Rf humhub myhumhub.tgz
### variante 2
cp -a humhub/* ..
cp -a humhub/.* ..
rm -Rf humhub
### tronc commun
git checkout stable

Installer composer

Si composer est installé en mode global sur le système, on peut être tentée d'utiliser cette version. Le choix fait ici est d'installer une version locale à HumHub afin de faciliter la “migrabilité” du service4).

Source : Download Composer (en) (getcomposer.org)

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '61069fe8c6436a4468d0371454cf38a812e451a14ab1691543f25a9627b97ff96d8753d92a00654c21e2212a5ae1ff36') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Installer les dépendances

On installe les dépendances de HumHub via la version local de composer. Comme indiqué précédemment, il faut impérativement disposer du module php5-ldap.

php composer.phar global require "fxp/composer-asset-plugin:~1.1.1"
php composer.phar update
L'update demande un jeton de validation (token) github qui demande lui-même un compte github. Le terminal affiche les informations pour le récupérer. Le token et sauvegardé dans le répertoire de l'utilisatrice :“It will be stored in ”~user/.composer/auth.json“ for future use by Composer”.

Les messages d'erreurs concernant zen-ldap peuvent être ignorés. opcache et ldap sont optionnels sur HumHub.

Terminer l'installation et la configuration de base

On reprend la documentation officielle d'installation à la section Setting Up.

Mise à jour

cd public_html
git pull
php composer.phar update
cd protected
php yii migrate/up --includeModuleMigrations=1

Transfert de serveur ou de domaine

La documentation officielle n'indique pas comment transférer une site HumHub vers un autre serveur ou un autre domaine.

Transfert intégral

On s'intéresse ici au transfert en l'état d'un site HumHub. Le cas testé est celui d'un site initialement installé via tarball.

Marche à suivre5) :

Cette procédure doit être mise à jour pour respecter les règles de surcharge du fichier dynamic.php
  1. Sauvegarder l'application et les fichiers de données courants
    tar czf ../tmp/HH.tgz --exclude='./icon' --exclude='./awstats-icon' --exclude='./awstatsicons' --exclude='./stats'  .
  2. Faire un dump de la base de données
  3. Restaurer la base de données
  4. Éditer la base de données : table setting row baseurl
  5. Restaurer l'application et les données
  6. Éditer le fichier des réglages : protected/config/dynamic.php
    1. réglages base de données (classique)
    2. nom de domaine (recherche-remplace)
    3. base d'installation
  7. Pointer le navigateur sur le nouveau site (identifiants identiques)
  8. Purger le cache : System Administration > Paramètres > Cache > Enregistrer & Purger le cache

Tranfert d'un site tarball vers un site git-composer

Le cas d'usage est celui d'une installation de test effectuée en mode tarball qui doit évoluer vers une version en production et maintenue. On souhaite donc la changer de serveur virtuel et changer le mode de mise à jour de l'application.

Cette section est en cours de test.

Piste 1 (infructueuse en l'état)

Le transfert intégral a permis de valider l'adaptation de la configuration (fichiers + BdD). Mais ça coince quelque part.

  1. Sur le nouveau serveur, on installe l'application en git-composer
  2. On transfère uniquement les fichiers nécessaires de plus l'ancien serveur vers le nouveau et on met à jour la configuration
  3. On transfère la base de données et on met à jour
cd ~user/domains/prev.domain/public_html
tar czf ../tmp/hh.tgz uploads protected/runtime protected/config protected/modules themes
cd ~user/domains/next.domain/public_html
tar xf ~user/domains/prev.domain/tmp/hh.tgz

Piste 2 (à tester)

  1. On effectue un transfert classique
  2. Sur le nouveau serveur, on écrase l'installation courante par un installation de type git-composer
1)
Simplification des mises à jour.
2)
Ainsi, l'application HumHub peut-être déplacée vers un serveur sur lequel composer n'aurait pas été installé en mode global.
3)
Dans une telle installation, cette bibliothèque n'est utile que si l'on choisit d'authentifier les utilisatrices via un service ldap.
4)
Le serveur cible n'aura pas besoin que composer y soit installé et la compatibilité de version est garantie.
5)
L'organisation supposée du système de fichiers est celle de virtualmin.