Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Divers / Installer HumHub sur Debian

Installer HumHub sur Debian

Par Pierre-Yves Landuré Dernière modification 14/01/2016 14:26

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 :

Ce guide recommande:

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