====== Installer HumHub sous virtualmin-Debian ======
===== Contexte =====
Cette notice décrit l'[[https://www.humhub.org/docs/guide-README.html|installation de HumHub]] sur un serveur virtuel géré par [[http://www.webmin.com/virtualmin.html|Virtualmin]], sous [[https://www.debian.org/News/2015/20150426|Debian 8]] (Jessie).
Les choix suivants ont été faits :
* //HumHub// est placé directement dans //public_html// (pas dans un sous-répertoire //humhub//)
* l'installation se fait via //git//((Simplification des mises à jour.))
* //composer// est installé en local((Ainsi, l'application //HumHub// peut-être déplacée vers un serveur sur lequel //composer// n'aurait pas été installé en mode //global//.))
===== Prérequis =====
Pour une installation en mode tarball, la **bibliothèque php-ldap** est optionnelle((Dans une telle installation, cette bibliothèque n'est utile que si l'on choisit d'authentifier les utilisatrices via un service ldap.)). 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 : [[https://www.humhub.org/docs/guide-admin-installation.html|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 [[https://getcomposer.org/doc/00-intro.md|locale]] à //HumHub// afin de faciliter la "migrabilité" du service((Le serveur cible n'aura pas besoin que //composer// y soit installé et la compatibilité de version est garantie.)).
Source : [[https://getcomposer.org/download/|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 :"I//t 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 [[https://www.humhub.org/docs/guide-admin-installation.html#setting-up|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 à suivre((L'organisation supposée du système de fichiers est celle de virtualmin.)) :
Cette procédure doit être mise à jour pour respecter les [[https://www.humhub.org/docs/guide-admin-adv-config.html|règles de surcharge]] du fichier dynamic.php
- Sauvegarder l'application et les fichiers de données courantstar 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.
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.
- 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