Table des matières

Transférer les fichiers d’install par FTP, puis les mettre dans /var/www/html/nextcloud

Affecter à www-data :

chown -R www-data:www-data /var/www/html/nextcloud/

Installer le module PHP cURL :

agi curl php-curl

Relancer apache :

service apache2 restart

Se rendre sur l’index de Nextcloud et c’est parti pour l’installation !

Tuning Nextcloud

Après quelques années d'utilisation et quelques app gourmandes (memories + recognize), le serveur saturait la BDD mariaDB de temps en temps. Problème résolu en suivant le premier paragraphe de ceci : https://haefelfinger.ch/posts/2021/2021-03-29-nextcloud-tuning/ et ceci : https://mariadb.com/docs/server/storage-engines/innodb/operations/configure-buffer-pool/#Configure_the_InnoDB_Buffer_Pool_Size_in_a_Configuration_File

Pour résumer, on crée un fichier de conf “custom” pour mariaDB et on augmente certaines valeurs : <code bash>nano /etc/mysql/mariadb.conf.d/z-custom-mariadb.cnf</code>

Le fichier n'étant pas pris en compte, j'ai ajouté dans le fichier 50-server.cnf dans la partie [mysqld] “fine tuning” :

nano /etc/mysql/mariadb.conf.d/50-server.cnf
z-custom-mariadb.cnf
innodb_buffer_pool_size=2G
read_rnd_buffer_size=16M
sort_buffer_size=16M
query_cache_type=ON
query_cache_size=24M

Puis on redémarre mariaDB pour le prendre en compte :

sudo systemctl restart mariadb

En cas d’erreurs

Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [1044] Access denied for user ‘oc_TONUSER’@’localhost’ to database ‘TABDD’

Il faut que l’utilisateur créé pour la base de données MySQL aie tous les droits (même GRANT) comme indiqué ici :

https://help.nextcloud.com/t/error-creating-admin-user/23943 et donc ici : https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7

En cas de multiples erreurs

Error PHP You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18

agi php-intl
service apache2 restart

Enfin en cas d’erreur « Accès depuis un domaine non fiable », se rendre sur le serveur et ajouter le DNS :

nano /var/www/nextcloud/config/config.php
AVANT :
'trusted_domains' =>
array (
0 => '192.168.0.29',
),
 
APRES :
'trusted_domains' =>
array (
0 => '192.168.0.29',
1 => 'cloud.example.com',
),

Pour lancer des commandes OCC il faut par exemple :

sudo -u www-data php /var/www/html/nextcloud/occ  db:add-missing-columns

sudo -u www-data php permet de lancer php en tant qu’utilisateur www-data, puis on donne le chemin d’occ et la commande à exécuter.

Pour ajouter un cron tous les jours à 18h au lieu des tâches d’arrière plan en AJAX, un petit crontab -e et :

 * */18 * * * sudo -u www-data php -f /var/www/html/nxcloud/cron.php

Memcache

agi php-redis sudo /etc/init.d/apache2 restart

Exemple de fichier config au final avec activation du memcache

config_exemple_memcache.php
  1. <?php
  2. $CONFIG = array (
  3. 'instanceid' => 'xxxxxxxxxxxx',
  4. 'passwordsalt' => 'xxxxxxxxxxxx',
  5. 'secret' => 'xxxxxxxxxxxx',
  6. 'trusted_domains' =>
  7. 0 => '192.168.xxx.xxx',
  8. 1 => 'xxxxxxxxxxxx.org',
  9. 2 => 'xxxxxxxxxxxx.com',
  10. 3 => 'xxxxxxxxxxxx.fr',
  11. ),
  12. 'datadirectory' => '/var/www/xxxxxxxxxxxx',
  13. 'dbtype' => 'mysql',
  14. 'version' => '22.2.3.0',
  15. 'overwrite.cli.url' => 'https://192.168.xxx.xxx',
  16. 'dbname' => 'xxxxxxxx',
  17. 'dbhost' => 'localhost',
  18. 'dbport' => '',
  19. 'dbtableprefix' => 'xxx_',
  20. 'mysql.utf8mb4' => true,
  21. 'dbuser' => 'xxx_xxxxxx',
  22. 'dbpassword' => 'xxxxxxxxxxxx',
  23. 'installed' => true,
  24. 'maintenance' => false,
  25. 'theme' => '',
  26. 'loglevel' => 2,
  27. 'log_rotate_size' => 10485760,
  28. 'updater.release.channel' => 'stable',
  29. 'memcache.local' => '\\OC\\Memcache\\Redis',
  30. 'memcache.locking' => '\\OC\\Memcache\\Redis',
  31. 'memcache.distributed' => '\\OC\\Memcache\\Redis',
  32. 'redis' =>
  33. 'host' => 'localhost',
  34. 'port' => 6379,
  35. ),
  36. 'default_phone_region' => 'FR',
  37. 'trashbin_retention_obligation' => '60,180',
  38. 'versions_retention_obligation' => 'auto, 366',
  39. 'enable_previews' => false,
  40. 'preview_max_x' => 400,
  41. 'preview_max_y' => 400,
  42. 'preview_max_scale_factor' => 1.5,
  43. 'enabledPreviewProviders' =>
  44. ),
  45. );

Pour un client en ligne de commande

apt-get install nextcloud-desktop-cmd

Sur le rpi-poulailler, le client en ligne de commande est différent :

sudo owncloudcmd /var/www/html/ https://rpi-poulailler:motdepasse@nxcloud.zapto.org/remote.php/webdav/rpi-poulailler/www && sudo owncloudcmd /home/pi/poulailler/ https://rpi-poulailler:motdepasse@nxcloud.zapto.org/remote.php/webdav/rpi-poulailler/py && sudo owncloudcmd /etc/motion/ https://rpi-poulailler:motdepasse@nxcloud.zapto.org/remote.php/webdav/rpi-poulailler/motion