« Humhub » : différence entre les versions

De Reliable Brain
Ligne 9 : Ligne 9 :
* Pour installer les packages complémentaires :
* Pour installer les packages complémentaires :
<source>
<source>
sudo apt-get install apache2 mysql-server php5-curl php5-mysql php5-gd php5-cli php5-cli libapache2-mod-xsendfile php5-sqlite git php-apc php5-ldap
sudo apt-get install apache2 mysql-server php5-curl php5-mysql php5-gd php5-cli php5-cli libapache2-mod-xsendfile php5-sqlite git php-apc php5-ldap imagemagick
</source>
</source>
==XSendFile : Téléchargement des PJ==
==XSendFile : Téléchargement des PJ==

Version du 8 mars 2015 à 21:24

J'ai recherché récemment un outil permettant de créer un petit réseau social au niveau du boulot.

L'outil devait permettre le travail collaboratif, l'échange de documents, de gérer des groupes.

Je suis tombé sur HumHub que je n'avais jamais testé, et pour cause, l'outil est jeune mais extrêmement prometteur.

Installation

Suivre la procédure indiquée ici : https://github.com/humhub/humhub/blob/master/protected/docs/guide/administration/index.md

  • Pour installer les packages complémentaires :
sudo apt-get install apache2 mysql-server php5-curl php5-mysql php5-gd php5-cli php5-cli libapache2-mod-xsendfile php5-sqlite git php-apc php5-ldap imagemagick

XSendFile : Téléchargement des PJ

Voilà l'un des points qui nous a donné le plus de fil à retordre. S'il est facile d'uploader sur HumHub, le download ne se faisait pas. Les images n'apparaissent pas, et le téléchargement proposait des fichiers de 0Kb.

Il faut procéder en 3 temps :

  1. Installer le composant XSendFile si ce n'est pas déjà fait
  2. Activer l'option dans "Administration" > "Réglages" > "Fichiers" puis cocher la case "Activer le support X-Sendfile"
  3. Modifier le fichier de configuration d'Apache ou le .htaccess
  4. ajouter :
XSendFile On
XSendFilePath /path/to/humhub/uploads

Relancer Apache :

 /etc/init.d/apache2 restart

Normalement, tout devrait être OK.

EtherPad

Ce module est génial, car il permet un vrai travail collaboratif, et un Chat. De plus, avec l'installation d'AbiWord, il devient possible d'importer et d'exporter des documents Microsoft Office ou LibreOffice, en plus des .rtf et .txt

Installation d'EtherPad

La démarche est ici : https://github.com/humhub/humhub-modules-notes/blob/master/README.md, mais plus précisément décrite ici : https://github.com/ether/etherpad-lite#installation

Ce qui donne, pour un serveur Debian sur lequel on en profitera pour installer node.js si ce n'est pas déjà fait :

apt-get install gzip git curl python libssl-dev pkg-config build-essential
apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs build-essential

# Création d'un user ether pad
adduser etherpad
cd /home/etherpad

# Installation d'Etherpad via git
git clone git://github.com/ether/etherpad-lite.git

Il est possible de tester immédiatement :

bin/run.sh

Ouvrir un navigateur avec http://@IP:9001 pour tester si Etherpad permet de créer des notes. Faire Ctrl-C pour stopper EtherPad.

  1. Avec phpmyadmin, j'ai créé un user etherpad avec sa base de données éponyme, au format MyISAM
  2. Aussitôt après, modifier le fichier /home/etherpad/etherpad-lite/settings.json pour indiquer l'utilisation de cette base de données,
  3. Désactiver "dbType" : "dirty" au profit de "dbType" : "mysql"
  4. compléter les champs en dessous avec le nom de la base et du compte etherpad et mot de passe associé
  5. En profiter aussi pour modifier les paramètres suivants du fichier settings :
    1. "ip" : "Adresse IP de la machine"
    2. "sessionKey" : créer un code de 10 caractères de long ou plus
    3. "abiword" : normalement, une fois que ce module est installé, le chemin doit être "/usr/bin/abiword". A vérifier avec la commande "which abiword"
  6. Désactiver les /* et */ autour du bloc "users" afin de permettre l'utilisation des comptes user et admin surtout pour l'ajout de plugin en mode Web.
  7. Enregistrer le fichier settings.json
  8. Ouvrir le fichier APIKEY.txt, copier le contenu dans un presse-papier
  9. installer le module EtherPad dans HumHub depuis l'interface d'administration, puis l'activer, et le configurer
  10. Coller le presse-papier dans le champ APIKEY du module Etherpad dans l'interface d'administration de HumHub

quelques optimisations

  1. Open your settings.json file
    1. Set maxAge to a LARGE value such as 99999999
    2. Set minify to true
  2. Utiliser impérativement une base de donnée en lieu et place du module DirtyDB
  3. Utiliser le moteur de base MyISAM en lieu et place de InnoDB
  4. Supprimer les plugins inutiles

Source : https://github.com/ether/etherpad-lite/wiki/Optimizing-Etherpad


Ajouter Abiword

Abiword est un traitement de texte, mais il sera ici utilisé comme un service par etherpad.

sudo apt-get install abiword

Relancer Etherpad

Lancer etherpad comme un service

Suivre le document suivant : https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service

#!/bin/sh

### BEGIN INIT INFO
# Provides:          etherpad-lite
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts etherpad lite
# Description:       starts etherpad lite using start-stop-daemon
### END INIT INFO

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin"
LOGFILE="/var/log/etherpad/etherpad.log"
EPLITE_DIR="/usr/share/etherpad"
EPLITE_BIN="bin/safeRun.sh"
USER="etherpad"
GROUP="etherpad"
DESC="Etherpad"
NAME="etherpad"

set -e

. /lib/lsb/init-functions

start() {
  echo "Starting $DESC... "
  
	start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true
  echo "done"
}

#We need this function to ensure the whole process tree will be killed
killtree() {
    local _pid=$1
    local _sig=${2-TERM}
    for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
        killtree ${_child} ${_sig}
    done
    kill -${_sig} ${_pid}
}

stop() {
  echo "Stopping $DESC... "
  if test -f /var/run/$NAME.pid; then
    while test -d /proc/$(cat /var/run/$NAME.pid); do
      killtree $(cat /var/run/$NAME.pid) 15
      sleep 0.5
    done
    rm /var/run/$NAME.pid
  fi
  echo "done"
}

status() {
  status_of_proc -p /var/run/$NAME.pid "" "etherpad" && exit 0 || exit $?
}

case "$1" in
  start)
	  start
	  ;;
  stop)
    stop
	  ;;
  restart)
	  stop
	  start
	  ;;
  status)
	  status
	  ;;
  *)
	  echo "Usage: $NAME {start|stop|restart|status}" >&2
	  exit 1
	  ;;
esac

exit 0

Désormais, etherpad se lance, se stoppe et se relance comme apache : /etc/init.d/etherpad restart


Ajout de plugins

Se rendre sur la page <@IP du serveur>:9001/admin et s'authentifier.

Mettre à jour

Faire un backup des bases de données et des fichiers

git pull
/var/www/<nom du répertoire contenant HumHub>/protected/yiic update