« Humhub » : différence entre les versions
m (→Installation) |
m (→Debian 11) |
||
Ligne 10 : | Ligne 10 : | ||
apt install php8.2 php8.2-imagick php8.2-gd php8.2-curl php8.2-zip php8.2-mysql php8.2-ldap php8.2-intl php8.2-apcu | apt install php8.2 php8.2-imagick php8.2-gd php8.2-curl php8.2-zip php8.2-mysql php8.2-ldap php8.2-intl php8.2-apcu | ||
# Installer Apache2<source>apt install apache2</source> | # Installer Apache2<source>apt install apache2</source> | ||
# Installer serveur SQL <source>apt install mariadb-server</source> | # Installer serveur SQL <source>apt install mariadb-server</source> | ||
# Redémarrer Apache pour intégrer toutes les extensions PHP<source>service apache2 restart</source> | # Redémarrer Apache pour intégrer toutes les extensions PHP<source>service apache2 restart</source> |
Version du 4 février 2023 à 21:00
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
Debian 11
- Installer PHP 8.2 : [Debian 11:PHP8.2]
apt install php8.2 php8.2-imagick php8.2-gd php8.2-curl php8.2-zip php8.2-mysql php8.2-ldap php8.2-intl php8.2-apcu
- Installer Apache2
apt install apache2
- Installer serveur SQL
apt install mariadb-server
- Redémarrer Apache pour intégrer toutes les extensions PHP
service apache2 restart
- Se connecter au serveur SQL
mysql -u root
- Sécuriser et créer la base de données
use mysql; update user set plugin='' where User='root'; flush privileges; \q
- Sécuriser le serveur SQL
mysql_secure_installation
- Valider sans mot de passe, pour répondre Y à Set root password? [Y/n]
- Saisir 2 fois le mot de passe root
- Accepter "Remove anonymous users? [Y/n] Y"
- Accepter "Disallow root login remotely? [Y/n] Y"
- Accepter "Remove test database and access to it? [Y/n] Y"
- Accepter "Reload privilege tables now? [Y/n] Y"
- Se reconnecter avec le compte root
mysql -u root -p
- Créer la base de données
CREATE DATABASE `humhub` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Donner les droits à un compte créé à la volée
GRANT ALL ON `humhub`.* TO `humhub_dbuser`@localhost IDENTIFIED BY '<motdepasse>';
- Recharger les privilèges
FLUSH PRIVILEGES;
- Et sortir
exit;
- Suivre la procédure d'installation : https://websiteforstudents.com/how-to-install-humhub-social-network-platform-on-ubuntu-18-04-16-04/
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 :
- Installer le composant XSendFile si ce n'est pas déjà fait
sudo apt install libapache2-mod-xsendfile systemctl restart apache2
- Dans Humhub, activer l'option dans "Administration" > "Réglages" > "Fichiers" puis cocher la case "Activer le support X-Sendfile"
- Modifier le fichier de configuration d'Apache ou le .htaccess
- ajouter :
XSendFile On
XSendFilePath /path/to/humhub/uploads
Relancer Apache :
/etc/init.d/apache2 restart
Normalement, tout devrait être OK.
Erreur SQLSTATE[HY000] [2002] No such file or directory
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.
- Avec phpmyadmin, j'ai créé un user etherpad avec sa base de données éponyme, au format MyISAM
- Aussitôt après, modifier le fichier /home/etherpad/etherpad-lite/settings.json pour indiquer l'utilisation de cette base de données,
- Désactiver "dbType" : "dirty" au profit de "dbType" : "mysql"
- compléter les champs en dessous avec le nom de la base et du compte etherpad et mot de passe associé
- En profiter aussi pour modifier les paramètres suivants du fichier settings :
- "ip" : "Adresse IP de la machine"
- "sessionKey" : créer un code de 10 caractères de long ou plus
- "abiword" : normalement, une fois que ce module est installé, le chemin doit être "/usr/bin/abiword". A vérifier avec la commande "which abiword"
- 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.
- Enregistrer le fichier settings.json
- Ouvrir le fichier APIKEY.txt, copier le contenu dans un presse-papier
- installer le module EtherPad dans HumHub depuis l'interface d'administration, puis l'activer, et le configurer
- Coller le presse-papier dans le champ APIKEY du module Etherpad dans l'interface d'administration de HumHub
quelques optimisations
- Open your settings.json file
- Set maxAge to a LARGE value such as 99999999
- Set minify to true
- Utiliser impérativement une base de donnée en lieu et place du module DirtyDB
- Utiliser le moteur de base MyISAM en lieu et place de InnoDB
- 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.
Maintenance
Commandes en lignes de commande, à lancer dansle répertoire humhub/protected :
- https://docs.humhub.org/docs/admin/console
- https://docs.humhub.org/docs/admin/backup/
- https://docs.humhub.org/docs/admin/search/
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