Outils pour utilisateurs

Outils du site


serveur_maison:installer_nextcloud

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
serveur_maison:installer_nextcloud [2024/07/19 16:25] jpgserveur_maison:installer_nextcloud [2024/07/19 16:48] (Version actuelle) – [Sauvegarde de Nextcloud] jpg
Ligne 1: Ligne 1:
 +====== Nextcloud 28 – Installation Debian ======
 +
 +
 +===== Présentation =====
 +
 +{{nextcloud:Presentation_59984293557d4210bab18ad287fba0c6.png?300 }}
 +
 +Nextcloud 28 //(Nextcloud Hub 7)// – Interface de connexion
 +
 +Nous allons, dans ce tutoriel, créer un **Cloud** personnel en installant **Nextcloud**.\\
 +Pour finir, nous **optimiserons** notre installation afin d’améliorer les performances de notre **Cloud Personnel**.\\
 +jjworld.fr[[https://www.jjworld.fr/installer-nextcloud-creer-son-cloud-personnel/]]
 +
 +----
 +
 +===== Préparation de l’environnement =====
 +
 +Avant d’installer Nextcloud et de créer notre Cloud Personnel, il faut s’assurer que le système est correctement configuré.\\
 +**Important :** A partir d’ici, toutes les commandes seront exécutées en tant que **root**.
 +
 +=== 1.1) Configuration de l’heure ===
 +
 +<code>
 +timedatectl set-timezone Europe/Paris
 +hwclock -w
 +timedatectl status
 +</code>
 +
 +
 +Vous pouvez obtenir la liste des fuseaux horaire acceptés en utilisant la commande : ''%%timedatectl list-timezones%%''
 +
 +=== 1.2) Mise à jour du dépôt et des paquets ===
 +
 +''%%apt -y update && apt -y upgrade%%''
 +
 +
 +=== 1.3) Ajout d’un nouveau dépôt pour php8.2 ===
 +
 +La version 8.2 de php n’est pour le moment pas disponible dans le dépôt officiel de Debian 12 et Ubuntu 22.04.\\
 +On ajoute donc un dépôt qui contient la version 8.2 :
 +
 +== Pour Debian 11 et Debian 12  ==
 +<code>
 +apt install -y lsb-release apt-transport-https ca-certificates && \
 +wget -O /etc/apt/trusted.gpg.d/php.gpg https:%%//%%packages.sury.org/php/apt.gpg && \
 +echo “deb https:%%//%%packages.sury.org/php/ $(lsb_release -sc) main” |\
 +tee /etc/apt/sources.list.d/php.list && \
 +apt update -y
 +</code>
 +
 +== Pour Ubuntu 22.04 : ==
 +<code>
 +apt install -y software-properties-common\
 +add-apt-repository -y ppa:ondrej/php\
 +apt update -y
 +</code>
 +=== 1.4) Installation des prérequis pour Nextcloud 28 ===
 +<code>export DEBIAN_FRONTEND=noninteractive</code>
 +# Installation des paquets (dont sudo pour Debian 11 et Debian 12)
 +<code>
 +apt-get install -y apache2 mariadb-server libapache2-mod-php8.2 imagemagick \
 +php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring \
 +php8.2-intl php8.2-imagick php8.2-xml php8.2-zip \
 +php8.2-apcu redis-server php8.2-redis \
 +php8.2-ldap smbclient php8.2-bcmath php8.2-gmp \
 +sudo
 +</code>
 +
 +===== Installation de NextCloud 28 =====
 +
 +=== 2.1) Création du Site Nextcloud dans Apache ===
 +
 +== Téléchargement de Nextcloud 28 : ==
 +
 +wget https:%%//%%download.nextcloud.com/server/releases/latest-28.tar.bz2
 +
 +
 +== Extraction dans le répertoire /var/www/ : ==
 +
 +<code>tar -xvf latest-28.tar.bz2 -C /var/www/ </code>
 +
 +
 +== Edition du fichier de configuration du site : ==
 +
 +nano /etc/apache2/sites-available/nextcloud.conf
 +
 +
 +{{nextcloud:Nextcloud-Configuration-Site-Apa_9c8eb3866db5480ea.png}}
 +
 +Contenu :
 +<file>
 +Alias / “/var/www/nextcloud:
 +<Directory /var/www/nextcloud:>
 +Require all granted
 +AllowOverride All
 +Options FollowSymLinks MultiViews
 +<IfModule mod_dav.c>
 +Dav off
 +</IfModule>
 +<IfModule mod_headers.c>
 +Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
 +</IfModule>
 +</Directory>
 +</file>
 +
 +== Attention à l’indentation. Problème constaté lors du copier/coller sous Firefox 107.0.1. ==
 +
 +== Activation du site et des modules nécessaires : ==
 +
 +# Activation du site nextcloud
 +<code>a2ensite nextcloud.conf</code>
 +Activation des modules
 +</code>
 +a2enmod rewrite
 +a2enmod headers
 +a2enmod env
 +a2enmod dir
 +a2enmod mime
 +</code>
 +# SSL
 +<code>
 +a2enmod ssl
 +a2ensite default-ssl
 +</code>
 +# Redémarrage service apache
 +<code>
 +systemctl restart apache2
 +</code>
 +
 +== Changement du propriétaire du répertoire nextcloud : ==
 +<code>
 +chown -R www-data:www-data /var/www/nextcloud
 +</code>
 +
 +== Vérifications versions : ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ -V
 +sudo -u www-data php /var/www/nextcloud:occ status
 +</code>
 +
 +=== 2.2) Création de la base de données Nextcloud ===
 +
 +== Pré-configuration de la base MariaDB : ==
 +
 +Les commandes qui suivent sont l’équivalent du script interactif **mysql_secure_installation**.
 +<code>
 +mysql –user=root <<-EOF
 +SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘VotreMotDePasse’);
 +DELETE FROM mysql.user WHERE User=‘root’ AND Host NOT IN (‘localhost’, ‘127.0.0.1’, ‘::1’);
 +DELETE FROM mysql.user WHERE User=’‘;
 +DELETE FROM mysql.db WHERE Db=’test’ OR Db=‘test_%’;
 +FLUSH PRIVILEGES;
 +EOF
 +</code>
 +
 +**==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi.
 +
 +== Création de la base de données : ==
 +<code>
 +mysql –user=root –password=VotreMotDePasse <<-EOF
 +CREATE DATABASE nextcloud;
 +CREATE USER ‘nextcloud’@‘localhost’ IDENTIFIED BY ‘VotreMotDePasse’;
 +GRANT ALL PRIVILEGES ON nextcloud.* TO “nextcloud”@“localhost”;
 +FLUSH PRIVILEGES;
 +EOF
 +</code>
 +
 +**==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi.
 +
 +=== 2.3) Finalisation de l’installation ===
 +
 +Pour terminer l’installation, il va falloir se connecter à l’URL de votre serveur Nextcloud.\\
 +Exemple : **https:%%//%%192.168.1.203**
 +
 +{{nextcloud:Nextcloud-Finalisation-Installat_9de8df90f336463e8.png}}
 +
 +1 : Nom du compte Administrateur Nextcloud\\
 +2 : Mot de passe du compte Administrateur\\
 +3 : Nom de l’utilisateur de base de données\\
 +4 : Mot de passe de la base de données\\
 +5 : Nom de la base de données\\
 +6 : Serveur hébergeant la base de données
 +
 +Cliquer sur **« Terminer l’installation »**.
 +
 +
 +----
 +
 +===== Configuration de Nextcloud 28 =====
 +
 +Une fois l’installation terminée, retourner dans l’invite de commande.
 +
 +=== 3.1) Configuration de la région par défaut pour les numéros de téléphone ===
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set \
 +default_phone_region –value=“FR”
 +</code>
 +
 +Remplacer **FR** par votre code pays [[https://en.wikipedia.org/wiki/ISO_3166-1|ISO 3166-1]].
 +
 +=== 3.1) Configuration de Pretty URLs ===
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set htaccess.RewriteBase –value=“/
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:update:htaccess
 +</code>
 +
 +Pretty URLs permet de supprimer le **//« index.php »//** dans la barre d’adresse.
 +
 +=== 3.2) Forcer HTTPS ===
 +
 +== Edition du fichier .htaccess : ==
 +
 +nano /var/www/nextcloud:.htaccess
 +
 +
 +Se rendre à la fin du fichier et renseigner les lignes suivantes juste avant la balise ''%%<IfModule mod_env.c>%%'' et avant l’instruction ''%%RewriteBase /%%'' :
 +<code>
 +RewriteCond %{HTTPS} !=on\\
 +RewriteRule (.*) https:%%//%%%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 +</code>
 +
 +{{nextcloud:Nextcloud-htaccess-forcer-https_8e3f02b24efd4bb2a0.png}}
 +
 +La première ligne **RewriteCond** est la condition.\\
 +La seconde est la **règle** de réécriture.
 +
 +=== 3.3) Suppressions des fichiers par défaut ===
 +
 +Le répertoire modèle utilisé lors de la création d’un profil utilisateur se trouve dans : ''%%/var/www/nextcloud:core/skeleton/Documents/%%''
 +<code>
 +rm -r “/var/www/nextcloud:core/skeleton/Documents/
 +rm -r “/var/www/nextcloud:core/skeleton/Photos/
 +rm “/var/www/nextcloud:core/skeleton/Nextcloud intro.mp4”
 +rm “/var/www/nextcloud:core/skeleton/Nextcloud.png”
 +</code>
 +
 +L’exemple ci-dessus supprime les répertoires et les fichiers et ne garde que le fichier ''%%Nextcloud Manual.pdf%%''\\
 +Bien entendu, de nouveaux fichiers et répertoires peuvent être rajoutés en fonction du besoin.
 +
 +=== 3.4) Installation et Activation d’applications dans Nextcloud ===
 +
 +== External storage support : ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ app:install files_external
 +sudo -u www-data php /var/www/nextcloud:occ app:enable files_external
 +</code>
 +
 +Application permettant de se connecter à des partages externes (SMB, FTP etc…).
 +
 +== LDAP user and group backend : ==
 +
 +sudo -u www-data php /var/www/nextcloud:occ app:install user_ldap\\
 +sudo -u www-data php /var/www/nextcloud:occ app:enable user_ldap
 +
 +
 +Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory).
 +
 +== Mise à jour de toutes les applications ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ app:update –all
 +</code>
 +
 +=== 3.5) Gestion des fichiers supprimés (Corbeille) ===
 +
 +L’application **Deleted files** installée par défaut gère les fichiers supprimés en fonction du paramètre **trashbin_retention_obligation** du fichier ''%%config.php%%''.
 +
 +== Vérification du paramètre trashbin_retention_obligation : ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:get \
 +trashbin_retention_obligation
 +</code>
 +
 +**A noter :** Si aucune valeur n’est retournée, la configuration par défaut sera utilisée.
 +
 +== Modification du paramètre trashbin_retention_obligation : ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set \
 +trashbin_retention_obligation –value=“auto, 15”
 +</code>
 +
 +Les fichiers seront définitivement supprimés au bout de **15 jours**.\\
 +Si la taille de l’ensemble des fichiers supprimés dépassent la limite autorisée (par défaut **50% de l’espace libre**), l’application **Deleted files** supprimera les fichiers les plus anciens jusqu’à descendre en dessous de la limite autorisée.
 +
 +== Forcer la suppression définitive des fichiers supprimés ne respectant plus les conditions de rétention ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ trashbin:expire
 +</code>
 +
 +== Forcer la suppression définitive de tous les fichiers supprimés ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ trashbin:cleanup –all-users
 +</code>
 +
 +==Il est possible de remplacer ''%%--all-users%%'' par le nom des utilisateurs séparés par des espaces.==\\
 +==Pour un utilisateur provenant de l’annuaire LDAP, il faudra utiliser son ID.==
 +
 +Pour aller plus loin : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#deleted-items-trash-bin|Nextcloud – Deleted Items (trash bin)]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#trashbin|Nextcloud – Occ Trashbin]]
 +
 +=== 3.6) Tâches de fond ===
 +
 +Pour son bon fonctionnement, Nextcloud exécute régulièrement des tâches de fond (Jobs).\\
 +**Exemple de tâche** : Scan à la recherche de nouveaux fichiers.\\
 +Par défaut, ces tâches sont exécutées à chaque chargement de page.\\
 +Cependant, si personne ne visite le site, aucune tâche ne sera exécutée.\\
 +Il est donc recommandé d’utiliser [[https://doc.ubuntu-fr.org/cron|Cron]] afin d’exécuter ces tâches de manière régulière sans intervention humaine.
 +
 +== Création de la tâche Cron : ==
 +<code>
 +crontab -u www-data -e
 +</code>
 +
 +Ajouter la ligne suivante à la fin du fichier :
 +<code>
 +*/5 * * * * php -f /var/www/nextcloud:cron.php
 +</code>
 +
 +Le fichier **cron.php** contenant les tâches Nextcloud sera exécuté toutes les **5 minutes**.\\
 +Cet intervalle peut être modifié en remplaçant le **5** par une autre valeur.
 +
 +== Configuration du type de tâche dans Nextcloud : ==
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ background:cron
 +</code>
 +
 +**Attention aux espaces. Problème constaté lors du copier/coller sous Firefox 107.0.1.**
 +
 +Pour aller plus loin, vous pouvez consulter la page [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html|Background jobs]] de la documentation officielle.
 +
 +=== 3.6) Configuration de la langue du profil ===
 +
 +Rentrer dans le menu **« Paramètres »** :
 +
 +{{nextcloud:ParametresPersonel_31eb1fa7592b4cc79705530e81d22bd.png|Parametres}}
 +
 +Dans le panneau de gauche, sélectionner **« Informations personnelles »**.
 +
 +Régler la **Langue** et les **Paramètres régionaux** :
 +
 +{{nextcloud:Parametres-Regionaux_1292ffe779c647c09e8f1696cdef8.png|Parametres}}
 +
 +Il est également possible de définir les autres paramètres (Adresse email, téléphone etc…)
 +
 +=== 3.7) Vérification de Mise à Jour ===
 +
 +Cliquer sur **« Vue d’ensemble »** sous **« Administration »**.
 +
 +{{nextcloud:Nextcloud-V_C3_A9rification-MAJ_a2573419bbb94c05a1.png|Mise a jour}}
 +
 +
 +----
 +
 +
 +=====  Utilisateurs et Groupes =====
 +
 +=== 5.1) Création Utilisateurs et Groupes ===
 +
 +Se rendre dans le menu **Utilisateurs**.
 +
 +{{nextcloud:Nextcloud-Utilisateurs_0bdfb8fdf7c042ffa42b05fc2c2.png|Utilisateurs}}
 +
 +Cliquer sur **« Ajouter un groupe »** pour créer un groupe.\\
 +Cliquer sur **« Nouvel utilisateur »** pour créer un utilisateur.
 +
 +=== 5.2) Administrateurs Nextcloud ===
 +
 +Pour définir un utilisateur en tant qu’Administrateur, il faut l’ajouter au groupe **« admin »**.
 +
 +{{nextcloud:Nextcloud-Utilisateurs-Ajout-Gro_cc1fde50a2684b21a.png|Utilisateur admin}}
 +
 +
 +----
 +
 +===== Stockages Externes =====
 +
 +=== 6.1) Configuration générale ===
 +
 +Grâce à l’application %%**%%%%**%%[[https://docs.nextcloud.com/server/latest/go.php?to=admin-external-storage|External storage support]]%%**%%%%**%%, il est possible de se connecter à des stockages externes (Exemple : SMB, FTP etc…).\\
 +Nous allons, dans l’exemple qui suit, nous connecter à un partage SMB/WINDOWS de notre serveur TrueNAS (Installé grâce à notre [[https://www.jjworld.fr/installer-freenas-truenas/|Tutoriel TrueNAS]]).
 +
 +== Se rendre dans Paramètres, Stockages externes : ==
 +
 +{{nextcloud:Nextcloud-Stockages-Externes-102_3ba6d7ed800149d08.png|Stockage externe}}
 +
 +**Stockage externe** : Type de stockage\\
 +**Authentification** : A choisir en fonction du contexte mais **« Identifiants de connexion, sauvegardés dans la base de données »** permet une meilleure compatibilité avec les services tels que l’application pour Smartphone et le client Windows.\\
 +Pour plus d’information sur les méthodes d’authentification, consulter la page officielle [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage/auth_mechanisms.html|External Storage authentication mechanisms]]
 +
 +=== 6.2) Autoriser le Partage ===
 +
 +Pour que les utilisateurs puissent partager des fichiers provenant du stockage externe, il faudra activer l’option **''%%"Permettre le partage"%%''**.
 +
 +Cliquer sur les **« … »** et cocher l’option **« Permettre le partage »**.
 +
 +{{nextcloud:2021-01-24-12_08_14-Parametres-N_c72a0a0824c54d5cb.png|Partage}}
 +
 +
 +----
 +
 +=====  Optimisation de Nextcloud =====
 +
 +**A partir d’ici, le serveur Nextcloud est fonctionnel.**\\
 +Cependant, des problèmes de performances peuvent se faire ressentir.\\
 +Pour s’en prévenir, il faut suivre quelques recommandations de la documentation officielle de **NextCloud**.
 +
 +=== 7.1) Base de données ===
 +
 +Sources : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#using-mariadb-mysql-instead-of-sqlite|Documentation Nextcloud – MariaDB/MySQL]]
 +
 +== Edition du fichier mysql.cnf : ==
 +
 +nano /etc/mysql/conf.d/mysql.cnf
 +
 +
 +Contenu :
 +<code>
 +[mysqld]\\
 +innodb_buffer_pool_size=512M\\
 +innodb_io_capacity=4000
 +</code>
 +Attention, il s’agit de la section mysql**d**.
 +
 +Exemple :
 +
 +{{nextcloud:Nextcloud-mysql-cfg_dcf34eef661644d98f14c9178a4e95.png|Mysql}}
 +
 +Il est possible d’aller plus loin dans l’optimisation en utilisant cette documentation : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/linux_database_configuration.html#configuring-a-mysql-or-mariadb-database|Documentation Nextcloud – Configuring a MySQL or MariaDB database]]
 +
 +== Edition du fichier my.cnf : ==
 +
 +nano /etc/mysql/my.cnf
 +
 +
 +Contenu :
 +<code>
 +[mysqld]\\
 +transaction_isolation = READ-COMMITTED\\
 +binlog_format = ROW
 +</code>
 +
 +Exemple :
 +
 +{{nextcloud:Nextcloud-my-cfg_323f0977c8874946a9793508c6d232f0.png|Ameliorations}}
 +
 +== Redémarrage MariaDB : ==
 +
 +systemctl restart mariadb.service
 +
 +
 +
 +=== 7.2) PHP – Modification memory_limit et désactivation output_buffering ===
 +
 +== Valeur initiale : ==
 +
 +cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering”
 +
 +
 +== Modification : ==
 +<code>
 +sed -i -e "s/^memory_limit \+= \+.*$/memory_limit = 512M/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^output_buffering \+= \+.*$/output_buffering = 0/g" /etc/php/8.2/apache2/php.ini
 +systemctl restart apache2.service
 +</code>
 +
 +
 +Modification du paramètre memory_limit à **512M** minimum pour le bon fonctionnement de Nextcloud.\\
 +Cette valeur peut être augmentée en fonction du besoin.
 +
 +== Vérifications : ==
 +
 +cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering”
 +
 +
 +=== 7.3) Configuration de Redis ===
 +
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Documentation Nextcloud – Redis]]
 +
 +== Ajout de l’utilisateur www-data au groupe redis : ==
 +
 +usermod -a -G redis www-data
 +
 +
 +== Configuration du fichier redis.conf : ==
 +<code>
 +sed -i -e "s/^#* *port +*6379$/port 0/g" /etc/redis/redis.conf
 +sed -i -e "s/^#* *unixsocket +*.*$/unixsocket \/var\/run\/redis\/redis-server.sock/g" /etc/redis/redis.conf
 +sed -i -e "s/^#* *unixsocketperm+*.*$/unixsocketperm 770/g" /etc/redis/redis.conf
 +</code>
 +== Vérification : ==
 +
 +cat /etc/redis/redis.conf | egrep “^#* *port +|^#* *unixsocket +|^#* *unixsocketperm +”
 +
 +
 +{{nextcloud:Nextcloud-redis-conf_44f3054d4fea42a3a3467bc099838.png|Redis}}
 +
 +== Redémarrage de Redis : ==
 +
 +systemctl restart redis-server.service
 +
 +
 +=== 7.4) File Locking et Memory Cache ===
 +
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html|File Locking]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Memory Caching]]
 +
 +== Configuration avec la commande occ: ==
 +
 +Shell
 +
 +# Activation de filelocking
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set filelocking.enabled –value=“true”
 +</code>
 +# Configuration du Redis
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis host –value=“/var/run/redis/redis-server.sock”
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis port –value=“0”
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis timeout –value=“0.0”
 +</code>
 +
 +# Configuration de memcache.distributed (à effectuer après la configuration de Redis)
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.distributed –value=“\OC\Memcache\Redis”
 +</code>
 +# Configuration de memcache.local et memcache.locking
 +<code>
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.local –value=“\OC\Memcache\Redis”
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.locking –value=“\OC\Memcache\Redis”
 +</code>
 +
 +== Vérification : ==
 +<code>
 +cat /var/www/nextcloud:config/config.php | \
 +egrep “’filelocking\.enabled|’memcache\.local\
 +’memcache\.locking|’host|’port|’timeout|’memcache\.distributed”
 +</code>
 +
 +{{nextcloud:Nextcloud-cache-config_9d02579969034e2898d3e1f0fa9.png|Configuration}}
 +
 +== Redémarrage d’Apache : ==
 +
 +systemctl restart apache2.service
 +
 +
 +=== 7.5) Activation de PHP OPcache ===
 +
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache|Documentation Nextcloud – Enable PHP OPcache]]
 +
 +== Edition du fichier php.ini : ==
 +
 +Shell
 +<code>
 +sed -i -e "s/^;* *opcache\.enable *= *.*$/opcache.enable=1/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^;* *opcache\.memory_consumption *= *.*$/opcache.memory_consumption=128/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=8/g" /etc/php/8.2/apache2/php.ini  
 +sed -i -e "s/^;* *opcache\.max_accelerated_files *= *.*$/opcache.max_accelerated_files=10000/g" /etc/php/8.2/apache2/php.ini  
 +sed -i -e "s/^;* *opcache\.revalidate_freq *= *.*$/opcache.revalidate_freq=60/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^;* *opcache\.save_comments *= *.*$/opcache.save_comments=1/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=16/g" /etc/php/8.2/apache2/php.ini
 +</code>
 +
 +== Vérification : ==
 +<code>
 +cat /etc/php/8.2/apache2/php.ini | \
 +egrep “^;* *opcache\.enable *=|^;* *opcache\.interned_strings_buffer *=\
 +|^;* *opcache\.max_accelerated_files *=|^;* *opcache\.memory_consumption *=\
 +|^;* *opcache\.save_comments *=|^;* *opcache\.revalidate_freq *=\
 +|^;* *opcache\.interned_strings_buffer*=”
 +</code>
 +
 +{{nextcloud:Nextcloud-php-OPCache-config_2b95b0323c974a9c8f5a7.png|Opcache}}
 +
 +== Redémarrage d’Apache : ==
 +
 +systemctl restart apache2.service
 +
 +|1|systemctl restart apache2.service|
 +
 +=== 7.6) Taille limite de téléchargement ===
 +
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html|Documentation Nextcloud – Uploading big files]]
 +
 +== Edition du fichier php.ini : ==
 +<code>
 +sed -i -e "s/^;* *upload_max_filesize *= *.*$/upload_max_filesize=16G/g" /etc/php/8.2/apache2/php.ini
 +sed -i -e "s/^;* *post_max_size *= *.*$/post_max_size=16G/g" /etc/php/8.2/apache2/php.ini
 +</code>
 +== Vérification : ==
 +
 +cat /etc/php/8.2/apache2/php.ini | egrep “^;* *upload_max_filesize *=|^;* *post_max_size *=”
 +
 +
 +{{nextcloud:Nextcloud-upload-big-file-php-co_3c40c8edf04144f3a.png|Taille du téléchargement}}
 +
 +== Redémarrage d’Apache : ==
 +
 +systemctl restart apache2.service
 +
 +
 +
 +----
 +
 +
 +=====  Sauvegarde de Nextcloud =====
 +
 +**Source**[[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html|Nextcloud Backup]]
 +
 +== Création des répertoires de sauvegarde : ==
 +
 +# Fichiers\\
 +mkdir -p /backups/nextcloud:files\\
 +# Base de données\\
 +mkdir -p /backups/nextcloud:database\\
 +# Permissions\\
 +chmod -R o-rwx /backups/
 +
 +
 +== Activation du mode Maintenance : ==
 +
 +# Activation\\
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –on\\
 +# Vérification\\
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode
 +
 +== Sauvegarde des fichiers dans un répertoire /backups/nextcloud: : ==
 +
 +# Sauf répertoire data et corbeille\\
 +rsync -Aavx /var/www/nextcloud: \\\
 +/backups/nextcloud:files/nextcloud-backup_`date +“%Y%m%d_%H%M%S”`/ \\\
 +--exclude={‘data/*’,‘*/files_trashbin/files/*’}
 +
 +
 +Le répertoire de sauvegarde sera ''%%/backups/nextcloud:files/nextcloud-backup_20201010_153025/%%'' pour une sauvegarde effectuée le 10 Octobre 2020 à 15:30:25.
 +
 +**Important** : Si vous souhaitez tout de même sauvegarder le répertoire data et la corbeille, il faudra supprimer le paramètre ''%%--exclude%%''.
 +
 +== Sauvegarde de la base de données MySQL/MariaDB : ==
 +
 +mysqldump –single-transaction -h localhost -u nextcloud -pVotreMotDePasse nextcloud > \\\
 +/backups/nextcloud:database/nextcloud-sqlbkp_`date +“%Y%m%d_%H%M%S”`.bak
 +
 +
 +**-h** : nom ou IP du serveur de base de données\\
 +**-u** : utilisateur de la base de données\\
 +**-p** : mot de passe de l’utilisateur\\
 +<html><br/></html>**Attention :**\\
 +– Pas d’espace entre **-p** et le **mot de passe**\\
 +– Remplacer **VotreMotDePasse** par le mot de passe de l’utilisateur.
 +
 +== Désactivation du mode Maintenance : ==
 +
 +# Désactivation\\
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –off
 +
 +
 +== Exemple de script de sauvegarde : ==
 +
 +<code>
 +#!/bin/bash
 +# Path
 +nextcloudPath=/var/www/nextcloud/
 +occPath=$nextcloudPath\occ
 +sourcePath=/var/www/nextcloud/
 +mainDestinationPath=/backups/nextcloud/`date +"%Y/%m"`/
 +filesDestinationPath=$mainDestinationPath\files/
 +databaseDestinationPath=$mainDestinationPath\database/
 +# Database
 +dbhost=$(cat $nextcloudPath\config/config.php | egrep "dbhost" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//')
 +dbname=$(cat $nextcloudPath\config/config.php | egrep "dbname" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//')
 +dbuser=$(cat $nextcloudPath\config/config.php | egrep "dbuser" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//')
 +dbpassword=$(cat $nextcloudPath\config/config.php | egrep "dbpassword" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//')
 +# Verbose
 +cyan='\e[1;36m'
 +white='\e[1;37m'
 +neutral='\e[0;m'
 +echo -e "${cyan}dbhost : ${white}$dbhost${neutral}"
 +echo -e "${cyan}dbname : ${white}$dbname${neutral}"
 +echo -e "${cyan}dbuser : ${white}$dbuser${neutral}"
 +#echo -e "${cyan}dbpassword : ${white}$dbpassword${neutral}"
 +read -t 10 -p "The backup will start after 10 seconds" || true
 +# Destinations creation
 +mkdir -p $filesDestinationPath
 +mkdir -p $databaseDestinationPath
 +chmod -R o-rwx /backups/
 +# Maintenance mode activation
 +sudo -u www-data php $occPath maintenance:mode --on
 +# Database backup
 +mysqldump --single-transaction -h $dbhost -u $dbuser -p$dbpassword $dbname > $databaseDestinationPath\nextcloud-sqlbkp_`date +"%Y%m%d_%H%M%S"`.bak
 +# Files backup
 +rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/ --exclude={'data/*','*/files_trashbin/files/*'}
 +#rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/
 +# Maintenance mode deactivation
 +sudo -u www-data php $occPath maintenance:mode --off
 +exit 0
 +</code>
 +
 +
 +Sauvegarde de base de données **MySql/MariaDB**.
 +
 +Exemple de restauration : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html?highlight=restore|Nextcloud – Restoring backup]]
 +
 +=====  Mise à jour de Nextcloud =====
 +
 +**Source** : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/upgrade.html|Nextcloud Upgrade]]
 +
 +== Lancement du programme de mise à jour : ==
 +
 +sudo -u www-data php /var/www/nextcloud:updater/updater.phar
 +
 +
 +Pour un lancement **sans interaction utilisateur**, il faudra le lancer en mode Batch en rajoutant l’argument **''%%--no-interaction%%''**
 +
 +{{nextcloud:Upgrade-Nextcloud_9f2fa73b7b4d4e5f90ce4c038df25445.png|Update}}
 +
 +Faire le choix **y**
 +
 +{{nextcloud:Upgrade-Nextcloud-2_742066967e444a888d5b85b6119c57.png|Update}}
 +
 +Appuyer sur la touche **Entrée**
 +
 +La ligne **''%%Update of code successful%%''** confirme que la mise à jour des fichiers est terminée.
 +
 +{{nextcloud:Upgrade-Nextcloud-3_fbce7574f07b4d4a973f11f09b5837.png|Update}}
 +
 +Appuyer sur **Entrée** pour désactiver le mode maintenance.
 +
 +La ligne **''%%Update successful%%''** confirme que la mise à jour est terminée.
 +
 +
 +----
 +
 +**Voilà ! C’est terminé !**
 +
 +Vous avez enfin créé **votre Cloud personnel** grâce à [[http://www.freenas.org/|]][[https://nextcloud.com/|Nextcloud]].\\
 +**Il ne reste plus qu’à :**
 +
 +  * Créer vos propres utilisateurs
 +  * Configurer votre routeur pour que nextcloud soit accessible depuis l’extérieur
 +
  
serveur_maison/installer_nextcloud.1721406349.txt.gz · Dernière modification : 2024/07/19 16:25 de jpg