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
# 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
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) :
- Sauvegarder l'application et les fichiers de données courants
tar czf ../tmp/HH.tgz --exclude='./icon' --exclude='./awstats-icon' --exclude='./awstatsicons' --exclude='./stats' .
- Faire un dump de la base de données
- Restaurer la base de données
- Éditer la base de données : table setting row baseurl
- Restaurer l'application et les données
- Éditer le fichier des réglages : protected/config/dynamic.php
- réglages base de données (classique)
- nom de domaine (recherche-remplace)
- base d'installation
- Pointer le navigateur sur le nouveau site (identifiants identiques)
- 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.
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.
- Sur le nouveau serveur, on installe l'application en git-composer
- On transfère uniquement les fichiers nécessaires de plus l'ancien serveur vers le nouveau et on met à jour la configuration
- 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)
- On effectue un transfert classique
- Sur le nouveau serveur, on écrase l'installation courante par un installation de type git-composer