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 :
nano /etc/mysql/mariadb.conf.d/z-custom-mariadb.cnf
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
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
'xxxxxxxxxxxx',
'passwordsalt' => 'xxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => '192.168.xxx.xxx',
1 => 'xxxxxxxxxxxx.org',
2 => 'xxxxxxxxxxxx.com',
3 => 'xxxxxxxxxxxx.fr',
),
'datadirectory' => '/var/www/xxxxxxxxxxxx',
'dbtype' => 'mysql',
'version' => '22.2.3.0',
'overwrite.cli.url' => 'https://192.168.xxx.xxx',
'dbname' => 'xxxxxxxx',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'xxx_',
'mysql.utf8mb4' => true,
'dbuser' => 'xxx_xxxxxx',
'dbpassword' => 'xxxxxxxxxxxx',
'installed' => true,
'maintenance' => false,
'theme' => '',
'loglevel' => 2,
'log_rotate_size' => 10485760,
'updater.release.channel' => 'stable',
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
),
'default_phone_region' => 'FR',
'trashbin_retention_obligation' => '60,180',
'versions_retention_obligation' => 'auto, 366',
'enable_previews' => false,
'preview_max_x' => 400,
'preview_max_y' => 400,
'preview_max_scale_factor' => 1.5,
'enabledPreviewProviders' =>
array (
),
);
===== 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