Installer HumHub sur Debian
HumHub est un outil de construction de communauté. Ce guide facilite son installation sur Debian.
Ce guide est testé sur:
- Debian 7.0 wheezy
Ce guide est testé avec ces versions de HumHub:
- 1.0.0-beta.2
Prérequis
Ce guide nécessite :
- a2tools, l'outil d'administration simplifiée d'Apache 2.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- le cache d'OpCode PHP APC, comme décrit par Installer l'extention PHP APC sur Debian.
- mysql-tools, l'outil d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide recommande:
- un serveur Memcached, comme décrit par Installer Memcached sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
domain='hub.domain.com'
Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian) (optionnel, recommandé):
# sslKeyName="${domain}"
Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur):
mysqlHost="localhost"
Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' >'/dev/null' && cmdProxy='sudo'
Déterminez le chemin d'installation:
installPath="/var/lib/humhub/${domain}"
Détectez le protocole utilisé:
protocol="http"
command test -n "${sslKeyName}" -a -e "/etc/ssl/private/${sslKeyName}.key" && protocol="https"
Assurez-vous de l'existence des dossiers parents:
${cmdProxy} mkdir -p "$(command dirname "${installPath}")"
Préparation de l'environnement
Installez les logiciels nécessaires:
${cmdProxy} apt-get install unzip imagemagick php5-gd php5-curl php5-mysql \
php5-sqlite php5-cli php5-intl php5-ldap php5-memcached libapache2-mod-xsendfile
Activez les modules expires et rewrite:
${cmdProxy} a2enmod xsendfile expires rewrite
Rechargez la configuration de PHP et Apache 2:
test -e '/etc/init.d/php5-fpm' && ${cmdProxy} service 'php5-fpm' 'restart'
test -e '/etc/init.d/apache2' && ${cmdProxy} service 'apache2' 'force-reload'
Mise en place de l'application
Téléchargez la dernière version de l'application:
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/tmp/sf-downloader'
command chmod +x '/tmp/sf-downloader'
source="$(${cmdProxy} /tmp/sf-downloader --zip --strip-components=1 --output-directory="${installPath}" \
'humhub' 'humhub-VERSION.zip')"
Autorisez la modification par le serveur des caches et emplacements de données:
while read writeablePath; do
originalPath="${installPath}/${writeablePath}"
${cmdProxy} chown -R www-data:www-data "${originalPath}"
done <<< "assets
protected/config
protected/modules
protected/runtime
uploads"
Rendez exécutable l'outil de gestion du framework:
${cmdProxy} chmod +x "${installPath}/protected/yii"
Activez la réécriture d'URL:
${cmdProxy} mv "${installPath}/.htaccess.dist" "${installPath}/.htaccess"
${cmdProxy} sed -i \
-e "/return \[/a\\
'components' => [\\
'urlManager' => [\\
'showScriptName' => false,\\
'enablePrettyUrl' => true,\\
],\\
]" \
"${installPath}/protected/config/common.php"
Configurez les scripts Cron:
echo "# Cron rules for HumHub at ${domain}
30 * * * * '${installPath}/protected/yii' 'cron/hourly' >'/dev/null' 2>&1
00 18 * * * '${installPath}/protected/yii' 'cron/daily' >'/dev/null' 2>&1" \
| ${cmdProxy} sudo tee "/etc/cron.d/humhub-${domain//\./-}"
Création de la base de données
Créez la base de données:
command mysql-tools --server="${mysqlHost}" --with-ssh \
--auto-hosts --db-prefix="humhub" --create "${domain}"
Notez précieusement les informations de connexion affichées.
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP pour le domaine:
if [ -n "${sslKeyName}" -a -e "/etc/ssl/private/${sslKeyName}.key" ]; then
command a2tools --ssl="${sslKeyName}" --overrides='All' "${domain}" "${installPath}"
command a2tools --template="redirect" "${domain}" "https://${domain}"
else
command a2tools --overrides='All' "${domain}" "${installPath}"
fi
L'installation est maintenant disponible sur le domaine.
Accédez à la procédure d'installation via l'URL fournie par:
echo "http://${domain}/"
Sécurisation
Une fois l'installation terminée, sécurisez l'installation.
Assurez vous que les dossiers 'protected' et 'uploads/file' ne soient pas accessibles par le web:
echo "deny from all" \
| ${cmdProxy} tee "${installPath}/protected/.htaccess" \
| ${cmdProxy} tee "${installPath}/uploads/file/.htaccess"
Désactivez le mode debug:
[[ -e "${installPath}/index-test.php" ]] && ${cmdProxy} rm "${installPath}/index-test.php"
${cmdProxy} sed -i \
-e 's|^.*YII_DEBUG|// &|' \
-e 's|^.*YII_ENV|// &|' \
"${installPath}/index.php"
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "${installPath}"
N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).
Remerciements
- Merci aux développeurs de HumHub (en).