Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
si:movim [2019/02/10 19:39] pitchum créée |
si:movim [2019/02/12 21:50] (Version actuelle) pitchum [(Ré)initialiser le compte admin Movim] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
Chez parinux le serveur XMPP est [[si:ejabberd]]. | Chez parinux le serveur XMPP est [[si:ejabberd]]. | ||
+ | ===== Maintenance ===== | ||
+ | |||
+ | ==== Logs utiles ==== | ||
+ | |||
+ | <code bash>journalctl -f -u movim</code> | ||
+ | |||
+ | <code bash>journalctl -f -u php7.3-fpm</code> | ||
+ | |||
+ | <code bash>tail -f /var/log/apache2/movim.access.log</code> | ||
+ | |||
+ | ==== Relancer Movim ==== | ||
+ | |||
+ | <code bash>systemctl restart movim</code> | ||
+ | |||
+ | ==== Données à sauvegarder ==== | ||
+ | |||
+ | Movim ne stocke que très peu de données qui méritent d'être sauvegardées. | ||
+ | L'essentiel de données visibles dans Movim sont en réalité publiées sur les serveurs XMPP. | ||
+ | La base de données SQL utilisée par Movim sert essentiellement de cache pour éviter de solliciter systématiquement les serveurs XMPP. | ||
+ | |||
+ | Les seules données originales produites par Movim sont les paramètres de configuration qui sont stockés dans la table //configuration//. | ||
+ | |||
+ | ==== Mettre à jour ==== | ||
+ | |||
+ | Si une nouvelle version est disponible au téléchargement au format //.tar.gz// voici la procédure simple et générique pour mettre à jour Movim. | ||
+ | |||
+ | Avant toute chose jeter un œil sur la [[https://github.com/movim/movim/wiki/Install-Movim#update|page officielle]] au cas où il y aurait une procédure particulière pour cette version. | ||
+ | |||
+ | <code bash> | ||
+ | cd /var/www/movim/upstream | ||
+ | curl -JOLs https://github.com/movim/movim/archive/x.xx.x.tar.gz | ||
+ | cd .. | ||
+ | tar xavf upstream/x.xx.x.tar.gz | ||
+ | ln db.inc.php movim-x.xx.x/config/ | ||
+ | rm public_html && ln movim-x.xx.x public_html | ||
+ | cd public_html | ||
+ | sudo -u movim composer install | ||
+ | sudo -u movim php vendor/bin/phinx migrate | ||
+ | systemctl restart movim | ||
+ | </code> | ||
+ | ===== Installation ===== | ||
+ | |||
+ | Même s'il existe enfin un paquet Debian pour movim, il est loin d'être parfait et l'installation à l'ancienne se passe bien alors voici comment j'ai fait. | ||
+ | |||
+ | //J'ai essayé de faire marcher movim avec MySQL car on avait déjà un serveur MySQL opérationnel que j'aurais aimé utiliser, mais Movim fonctionne vraiment très mal avec MySQL, dès l'installation. | ||
+ | Donc j'ai craqué et j'ai installé un postgresql en local (sans chercher à voir si on avait déjà un postgresql quelque part, mais c'est pas grave, si besoin on déplacera la BDD là où il faut).// | ||
+ | |||
+ | ==== Pré-requis APT ==== | ||
+ | |||
+ | <code bash>apt install apache2 php-fpm php-pgsql \ | ||
+ | php-curl php-gd php-mbstring php-xml \ | ||
+ | composer php-symfony | ||
+ | </code> | ||
+ | |||
+ | ==== Créer un utilisateur système dédié ==== | ||
+ | |||
+ | <code bash>useradd --system -d /var/www/movim/ --create-home --shell /bin/nologin movim</code> | ||
+ | |||
+ | ==== Préparer une base de données ==== | ||
+ | |||
+ | Installer postgresql si besoin : | ||
+ | |||
+ | <code bash>apt install postgresql</code> | ||
+ | |||
+ | Puis créer un utilisateur et une base dédiés à Movim. | ||
+ | |||
+ | <code bash> | ||
+ | sudo -u postgres createuser --pwprompt movim | ||
+ | sudo -u postgres createdb -O movim movim | ||
+ | </code> | ||
+ | ==== Déployer le code de Movim ==== | ||
+ | |||
+ | <code bash> | ||
+ | cd /var/www/movim | ||
+ | mkdir upstream | ||
+ | cd upstream | ||
+ | curl -JOLs https://github.com/movim/movim/archive/0.14.1.tar.gz | ||
+ | cd .. | ||
+ | tar xavf upstream/movim-0.14.1.tar.gz | ||
+ | ln -s movim-0.14.1 public_html | ||
+ | chown -R movim: /var/www/movim/public_html/ | ||
+ | cd public_html | ||
+ | sudo -u movim composer install | ||
+ | cp config/db.example.inc.php config/db.inc.php | ||
+ | edit config/db.inc.php | ||
+ | sudo -u movim php vendor/bin/phinx migrate | ||
+ | </code> | ||
+ | |||
+ | ==== (Ré)initialiser le compte admin Movim ==== | ||
+ | |||
+ | <code bash>sudo -u movim php daemon.php config --username=admin --password=v3rys3cr3t</code> | ||
+ | |||
+ | Ce compte admin permet alors de faire quelques réglages sur la [[https://movim.parinux.org/?admin|page d'admin Movim]]. | ||
+ | |||
+ | ==== Créer un service systemd ==== | ||
+ | |||
+ | Créer le fichier ///etc/systemd/system/movim.service// : | ||
+ | |||
+ | <file /etc/systemd/system/movim.service> | ||
+ | [Unit] | ||
+ | Description=Movim, kick ass social network | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStart=/usr/bin/php daemon.php start --url=https://movim.parinux.org/ --port=8080 --interface=0.0.0.0 | ||
+ | User=movim | ||
+ | WorkingDirectory=/var/www/movim/public_html | ||
+ | StandardOutput=syslog | ||
+ | SyslogIdentifier=movim | ||
+ | PIDFile=/run/movim.pid | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=default.target | ||
+ | </file> | ||
+ | |||
+ | On prévient systemd qu'il y a du nouveau : | ||
+ | |||
+ | <code bash>systemctl daemon-reload</code> | ||
+ | |||
+ | On lance movim une première en vérifiant son status avant et après parce qu'on aime bien ça : | ||
+ | |||
+ | <code bash> | ||
+ | systemctl status movim | ||
+ | systemctl start movim | ||
+ | systemctl status movim | ||
+ | </code> | ||
+ | |||
+ | ==== Configurer apache et php-fpm ==== | ||
+ | |||
+ | Créer le fichier ///etc/apache2/sites-available/movim.conf// : | ||
+ | |||
+ | <file /etc/apache2/sites-available/movim.conf> | ||
+ | <VirtualHost *:80> | ||
+ | ServerName movim.parinux.org | ||
+ | DocumentRoot /var/www/movim/public_html | ||
+ | |||
+ | ProxyPreserveHost On | ||
+ | <LocationMatch .*\.php> | ||
+ | SetHandler "proxy:unix:/run/php/movim.sock|fcgi://localhost/" | ||
+ | </LocationMatch> | ||
+ | ProxyPass /ws/ ws://localhost:8080/ | ||
+ | |||
+ | LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy | ||
+ | CustomLog /var/log/apache2/movim.access.log proxy | ||
+ | ErrorLog /var/log/apache2/movim.error.log | ||
+ | </VirtualHost> | ||
+ | </file> | ||
+ | |||
+ | Activer cette config : | ||
+ | |||
+ | <code bash>a2ensite movim.conf</code> | ||
+ | |||
+ | Activer quelques modules apache : | ||
+ | |||
+ | <code bash>a2enmod proxy_wstunnel fcgi</code> | ||
+ | |||
+ | Créer le fichier ///etc/php/7.3/fpm/pool.d/movim.conf// : | ||
+ | |||
+ | <file /etc/php/7.3/fpm/pool.d/movim.conf> | ||
+ | [movim] | ||
+ | user = movim | ||
+ | group = movim | ||
+ | listen = /run/php/movim.sock | ||
+ | listen.owner = www-data | ||
+ | listen.group = www-data | ||
+ | pm = dynamic | ||
+ | pm.max_children = 5 | ||
+ | pm.start_servers = 2 | ||
+ | pm.min_spare_servers = 1 | ||
+ | pm.max_spare_servers = 3 | ||
+ | </file> | ||
+ | |||
+ | Et relancer php-fpm : | ||
+ | |||
+ | <code bash>systemctl restart php7.3-fpm</code> | ||
+ | |||
+ | Et vérifier que le fichier ///run/php/movim.sock// est bien présent et appartient à www-data:www-data. | ||
+ | |||
+ | Relancer apache : | ||
+ | |||
+ | <code bash>systemctl restart apache2</code> |