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édentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
nextcloud-serveur [Le 16/01/2020, 18:03]
filerem1 [Thème]
nextcloud-serveur [Le 02/07/2022, 09:22]
88.120.82.201 [Cache mémoire]
Ligne 15: Ligne 15:
 Nextcloud étant une solution de cloud centralisé,​ elle requiert la mise en place d'un serveur. Si vous ne vous sentez pas l'âme d'un administrateur système vous pouvez profiter des services d'​[[nextcloud#​prestataires|un prestataire]] qui s'​occupera de cet aspect particulièrement technique. Nextcloud étant une solution de cloud centralisé,​ elle requiert la mise en place d'un serveur. Si vous ne vous sentez pas l'âme d'un administrateur système vous pouvez profiter des services d'​[[nextcloud#​prestataires|un prestataire]] qui s'​occupera de cet aspect particulièrement technique.
  
-Nous allons voir ici comment déployer et utiliser ce service sur un serveur privé (ou éventuellement mutualisé).+Nous allons voir ici comment déployer et utiliser ce service sur un serveur privé (ou éventuellement mutualisé). ​La procédure complète est décrite [[https://​docs.nextcloud.com/​server/​latest/​admin_manual/​installation/​example_ubuntu.htm|ici]] en anglais
  
 ===== Pré-requis =====  ===== Pré-requis ===== 
Ligne 28: Ligne 28:
   * Disposer d'une connexion à Internet configurée et activée.   * Disposer d'une connexion à Internet configurée et activée.
   * Savoir utiliser le [[:​terminal|terminal]]   * Savoir utiliser le [[:​terminal|terminal]]
-<note tip>La procédure décrite ici concerne une installation sur un serveur Ubuntu/​Debian nu (fresh install). Il vous faudra l'​adapter en fonction de vos besoins, par exemple si vous l'​installez sur un hébergement mutualisé, un VPS avec hyperviseur ​web type [[:​webmin|webmin]], ​ [[:​virtualmin|virtualmin]],​ cpanel ou autre.</​note>​+<note tip>La procédure décrite ici concerne une installation sur un serveur Ubuntu/​Debian nu (fresh install). Il vous faudra l'​adapter en fonction de vos besoins, par exemple si vous l'​installez sur un hébergement mutualisé, un VPS avec une interface d'​adiministration ​web type [[:​webmin|webmin]], ​ [[:​virtualmin|virtualmin]],​ cpanel ou autre.</​note>​
 ===== Installation =====  ===== Installation ===== 
 ==== Téléchargement et Extraction de Nextcloud ==== ==== Téléchargement et Extraction de Nextcloud ====
  
-Le téléchargement se fait via le site officiel : [[https://​nextcloud.com/​install/#​instructions-server]]+Le téléchargement se fait via [[https://​nextcloud.com/​install/#​instructions-server|le site officiel]].
  
-L’installateur se présente sous la forme d'une archive [[:​zip|ZIP]],​ à dézipper à la racine de votre serveur web. L'​extraction va créer un dossier nextcloud. ​Déplacez son contenu à la racine du serveur, et supprimez ​le dossier ​vide. Rien d'​autre ne doit être présent ​à la racine ​de votre serveur. ​Nextcloud vérifie ​l’intégrité des fichiers, et l'analyse échouera s'il reste d'​autres éléments.+L’installateur se présente sous la forme d'une archive [[:​zip|ZIP]],​ à [[archivage|dézipper]] à la racine de votre serveur web
 +En supposant que votre archive à été téléchargée dans le dossier Téléchargement,​ [[archivage|décompressez]] y le zip. L'​extraction va créer un dossier nextcloud. ​Ouvrez un terminal dans le dossier Téléchargements, et déplacez ​le contenu du dossier ​nextcloud ​à la racine ​du serveur ​avec la commande suivante :​ 
 +<​code>​sudo cp -r nextcloud /​var/​www/​nextcloud</​code>​ 
 +N.B. : l’emplacement /​var/​www/​nextcloud n'est qu'un exemple. Vous pouvez utiliser le répertoire de votre choix.
  
-==== Accès à l'installateur ​==== +====Créer la base de données et l'utilisateur MySQL / Mariadb==== 
-{{ :utilisateurs:​filerem1:​nextcloud:​nextcloud_module_php_install.png?​direct&​500|}}+Ouvrez la console d'​administration mysql /​mariadb ​: 
 +<​code>​sudo mysql</​code>​ 
 +ou si vous avez activé authentification par mot de passe de l'​utilisateur //root// 
 +<​code>​sudo mysql -uroot -p</​code>​
  
-Rendez-vous avec votre navigateur sur la page web de votre serveur, soit par son domaine si vous l'avez configuré, soit par son adresse IP. +Créez les utilisateurs pour mariadb et la base de données : <​code ​mysql>
-<note tip>Si vous avez réalisé les opérations précédentes en tant qu'​administrateur (donc //​owner// ​ et  //group// à //root//), exécutez: <​code>​$ sudo chown www-data:​www-data -R nextcloud/ </​code>​(remplacez nextcloud/ par votre dossier racine)</​note>​  +
-==== Installation des modules PHP manquant ====+
  
-La page d'installation indique qu'il manque des modules PHPConnectez vous en [[:​ssh|SSH]] avec les [[:​sudo|droits d'administration]] sur votre serveur, puis [[tutoriel:​comment_installer_un_paquet#​en_ligne_de_commande|installez ces paquets]] : +CREATE USER 'username'@'​localhost'​ IDENTIFIED BY '​password';​ 
 +CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;​ 
 +GRANT ALL PRIVILEGES ON nextcloud.* TO '​username'​@'​localhost'
 +FLUSH PRIVILEGES;</​code>​
  
-   $ apt install php-zip php-gd php-curl php-intl +Remplacez username ​et password par vos identifiant et mot de passe.
-   +
- Les installer ne suffit pas, il faut les activer, ​et redémarrer le serveur web pour que ceux ci soient pris en compte :  +
-   $ phpenmod zip gd curl intl +
-puis on redémarre le serveur Apache :  +
-   $ service apache2 restart+
  
-Revenez sur le navigateur web et rafraîchissez la pageVous devriez maintenant voir l'étape suivante. +====Installer les paquets PHP requis==== 
-  +Un certain nombre de modules PHP sont indispensablesPour les installer, si ce n'est déjà fait : 
-==== Identifiant ​emplacement ​de stockage ​et base de données  ​====+<​code>​sudo apt install php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-imagick php-xml php-zip</​code>​ 
 + 
 +====Configurez Apache==== 
 +Créez le fichier ''/​etc/​apache2/​sites-available/​nextcloud.conf''​ avec les droits d'​administrationet copiez-y le contenu suivant :​ 
 +<file bash> 
 +<​VirtualHost *:80> 
 +    ServerAdmin webmaster@localhost 
 +    ServerName nextcloud.localhost 
 +    DocumentRoot /​var/​www/​nextcloud 
 + 
 +    <​Directory /​var/​www/​nextcloud/>​ 
 +      Require all granted 
 +      AllowOverride All 
 +      Options FollowSymLinks MultiViews 
 +    </​Directory>​ 
 +</​VirtualHost>​ 
 +</​file>​ 
 +Si vous avez un nom de domaine, utilisez-le dans la directive ServerName à la place du nom local (nextcloud.localhost). 
 +Puis activez ce nouvel hôte virtuel : 
 +<​code>​a2ensite nextcloud.conf</​code>​ 
 +Activez les modules Apache indispensables : 
 +<​code>​a2enmod headers 
 +a2enmod env 
 +a2enmod dir 
 +a2enmod mime</​code>​ 
 + 
 +Donnez les droits adéquats aux fichiers ​et répertoires :​ <​code>​chown -R www-data:​www-data /​var/​www/​nextcloud/</​code>​ 
 +Finalement, redémarrez apache : <​code>​sudo systemctl restart apache2</​code>​ 
 + 
 +==== Assistant d'​installation ​de Nextcloud ​====
 {{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}} {{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}}
-À cette étape, ​vous allez créer le fichier ​de configuration du serveur nextcloud. ​+Rendez-vous avec votre navigateur sur la page web de votre serveur, soit par son domaine si vous l'avez configuré, soit par son nom local. Dans notre exemple, il s'agit de : ''​http://​nextcloud.localhost''​
  
-  * Choisissez votre identifiant ​et mot de passe d'administration. C'est ce compte qui servira à créer d'​autres comptes, à mettre à jour, à installer des applications,​ etc.+La fenêtre va vous demander de définir un nom d'​utilisateur ​et un mot de passe pour l'administrateur. C'est ce compte qui servira à créer d'​autres comptes, à mettre à jour, à installer des applications,​ etc.\\
  
 +Il faudra aussi indiquer le nom de la base de données. Dans notre exemple ci-dessus, elle s'​appelle //​nextcloud//,​ l'​utilisateur et son mot de passe définis plus haut. Par défaut le nom d'​hôte est //​localhost//​ et le port 3306.
  
-  * Choisissez ​le répertoire des données. Vous pouvez laissez tel quel ou bien changer l'​emplacement, par exemple ​si vous avez un disque supplémentaire,​ ou distant. Si vous changez l'​emplacement,​ il vous faudra [[:​droits|donner les droits]] au serveur web pour pouvoir y accéder. Sinon, vous pourrez accéder au serveur mais vous ne pourrez rien y stocker. Veillez aussi à ce que ces emplacements soient [[:​montage|monté au démarrage]] avec les bons droits.+Pour le choix du répertoire des données, il est conseillé de changer l'​emplacement ​pour qu'il soit en dehors du répertoire racine de l'​application (/​var/​www/​nextcloud dans notre exemple). Si vous changez l'​emplacement,​ il vous faudra [[:​droits|donner les droits]] ​(dans notre exemple changer le propriétaire et le groupe par www-data)au serveur web pour pouvoir y accéder.
  
 +Pour finir ensuite sur **"​Terminer l'​installation"​** , l'​installation prend un moment en fonction de la puissance de votre serveur. Si vous tombez sur une **"​Erreur 500"​**,​ rechargez la page jusqu'​à ce que l'​installation finisse (F5).
 +Lorsque la page de connexion apparaît, l'​installation est terminée. Procédez ensuite au réglage des performances du serveur Nextcloud.
  
-  * Choisissez la base de données. Avant de remplir ce champ, il faut que base de données existe déjà. Dans le cas de Mysql, nous allons la créer en ligne de commande via SSH. Dans votre session SSH en administrateur,​ exécutez ces commandes :  ​ 
  
-<​code>​$ mysql</​code>​ 
-  
-<​code>​$ >CREATE DATABASE nom_de_la_base; ​     # Remplacez nom_de_la_base par ce que vous voulez. N'​oubliez pas le ; puis validez.</​code>​ 
-  
-<​code>​$ >show databases; ​    # Ceci vérifie que la base à bien été créée. Si vous la voyez dans la liste, parfait! Sinon, renseignez vous sur les problèmes de création de base mysql.</​code>​ 
  
-  * **Remplissez maintenant l'​encart base de données :** 
-  - Utilisateur de la base de donnée ;  
-  - Mot de passe de la base de donnée ; 
-  - Le nom de la base de donnée ;  
-  - L'​emplacement de la base donnée et le numéro du port, par défaut localhost (signifie qu'​elle est sur la même machine que le serveur web) 
-  * Cliquer ensuite sur **"​Terminer l'​installation"​** , l'​installation prend un moment en fonction de la puissance de votre serveur. Si vous tombez sur une **"​Erreur 500"​**,​ rechargez la page jusqu'​à ce que l'​installation finisse (F5). 
-  * Lorsque la page de connexion apparaît, l'​installation est terminée. Procédez ensuite au réglage des performances du serveur Nextcloud. 
  
 ==== Applications ==== ==== Applications ====
Ligne 86: Ligne 107:
 Dans la liste de gauche, vous avez **//Pack d'​applications//​**,​ dans la liste, il suffit de cliquer le bouton sur la droite **//​Activer//​** Dans la liste de gauche, vous avez **//Pack d'​applications//​**,​ dans la liste, il suffit de cliquer le bouton sur la droite **//​Activer//​**
  
-==== Migration d'un serveur OwnCloud en serveur Nextcloud ==== +<​note ​important>Tout ce qui suit cet avertissement ​n'a ni été reluni actualisé. Il ya donc sans doute pas mal d'informations obsolètes.</​note>​
-Il est facile de migrer un serveur OwnCloud en serveur Nextcloud. +
-La page de référence est : [[https://​help.nextcloud.com/​t/​migrating-from-owncloud-to-nextcloud/​551|doc Nextcloud pour la migration (en)]]\\ +
-Il faut commencer par récupérer la version Nextcloud compatible avec votre version d'​OwnCloud:​ +
-  * ownCloud 8.2 et 9.0 vers Nextcloud 9. +
-  * ownCloud 9.0 et 9.1 vers Nextcloud 10 +
-  * ownCloud 10.0.* vers Nextcloud 12.0.* +
- +
-Puis suivre les étapes : +
-<​note ​warning>Comme toujours, pensez à sauvegarder au préalable, notamment la base de données ​qui va être modifiée et donc devenir incompatible avec OwnCloud ! Pour les données, il est préférable d'​avoir un répertoire indépendant,​ si ce n'est déjà faitc'est l'​occasion : le fichier //config.php// contient le paramètre: <​code>'​datadirectory'​ => '/​path/​my_owncloud_data',</​code>​ +
- ​Évidemment,​ il est préférable de réaliser cette opération à des heures où les utilisateurs ne sont pas connectés (et de les prévenir au préalable)!  ​</​note>​ +
-  - À part les répertoires //config// et //data//, supprimer le reste du contenu de votre répertoire OwnCloud. +
-  - Décompresser les fichiers et répertoire de Nextcloud dans le répertoire où étaient les fichiers OwnCloud. +
-  - Lancer la migration en appelant la page de votre cloud : // https://​mon_cloud.exemple.fr/​ ou ////​mon_serveur/​mon_cloud //et laissez-vous guider. Pour avoir un serveur Nextcloud à jour, vous pouvez enchaîner les mises à jour Nextcloud à dans l'​administration de Nextcloud +
- +
  
 ===== Réglage des performances ===== ===== Réglage des performances =====
Ligne 155: Ligne 161:
 Le cache mémoire est conseillé pour améliorer la réactivité de votre serveur. Les fichiers les plus demandés sont mis en cache mémoire pour une plus grande disponibilité.  ​ Le cache mémoire est conseillé pour améliorer la réactivité de votre serveur. Les fichiers les plus demandés sont mis en cache mémoire pour une plus grande disponibilité.  ​
  
-Dans la [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​configuring-memory-caching|documentation ​officiel]], le cache php-apc est désigné comme obsolète. Elle préconise d'​utiliser [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​id4|REDIS]] ou [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​id2|APCu]] que nous utiliserons ici.+Dans la [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​configuring-memory-caching|documentation ​officielle]], le cache php-apc est désigné comme obsolète. Elle préconise d'​utiliser [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​id4|REDIS]] ou [[https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​caching_configuration.html#​id2|APCu]] que nous utiliserons ici.
  
 Reprenez votre session SSH, allez à la racine de votre serveur nextcloud **( en général dans /​var/​www/​html ) ** Reprenez votre session SSH, allez à la racine de votre serveur nextcloud **( en général dans /​var/​www/​html ) **
Ligne 168: Ligne 174:
 Rajoutez une ligne à la fin, avant la dernière parenthèse :  Rajoutez une ligne à la fin, avant la dernière parenthèse : 
 <​code>'​memcache.local'​ => '​\OC\Memcache\APCu',</​code>​ <​code>'​memcache.local'​ => '​\OC\Memcache\APCu',</​code>​
-Enregistrez,​ redémarrez le serveur web, puis rechargez la page web nNxtcloud ​: la ligne concernant le cache est partie.+ 
 +Enregistrez ​puis dans le fichier /​etc/​php/<​php_version>/​mods-available/​apcu.ini,​ rajoutez la ligne : 
 +<​code>​apc.enable_cli=1</​code>​ 
 +Enregistrez également, redémarrez le serveur web, puis rechargez la page web Nextcloud ​: la ligne concernant le cache est partie.
  
  
Ligne 190: Ligne 199:
 </​code>​ </​code>​
  On enregistre, on quitte, on redémarre le serveur web, et on recharge la page web Nextcloud : tous les tests on réussi, le serveur est correctement configuré.  On enregistre, on quitte, on redémarre le serveur web, et on recharge la page web Nextcloud : tous les tests on réussi, le serveur est correctement configuré.
-Pour autant, il reste une dernière configuration à effectuer : la tâche [[:​cron|CRON].+Pour autant, il reste une dernière configuration à effectuer : la tâche [[:​cron|CRON]].
 ==== Configurer le CRON ==== ==== Configurer le CRON ====
 Nextcloud utilise une tâche //cron// pour lancer des scripts à intervalles réguliers. Par défaut, il est configuré pour utiliser [[https://​fr.wikipedia.org/​wiki/​Ajax_(informatique)|AJAX]],​ mais qui à le désavantage de ne fonctionner que via l'​explorateur web. Pour une utilisation via l'​application,​ il est [[https://​docs.nextcloud.com/​server/​12/​admin_manual/​configuration_server/​background_jobs_configuration.html#​cron|recommandé]] d'​utiliser le [[:​cron|CRON]] de votre serveur, paramétré avec l'​utilisateur qui gère votre site (par défaut www-data) Nextcloud utilise une tâche //cron// pour lancer des scripts à intervalles réguliers. Par défaut, il est configuré pour utiliser [[https://​fr.wikipedia.org/​wiki/​Ajax_(informatique)|AJAX]],​ mais qui à le désavantage de ne fonctionner que via l'​explorateur web. Pour une utilisation via l'​application,​ il est [[https://​docs.nextcloud.com/​server/​12/​admin_manual/​configuration_server/​background_jobs_configuration.html#​cron|recommandé]] d'​utiliser le [[:​cron|CRON]] de votre serveur, paramétré avec l'​utilisateur qui gère votre site (par défaut www-data)
  
-Nous allons appeler le fichier cron.php se trouvant à la racine de votre serveur web toutes les 15 minutes, par l'​utilisateur www-data. ( à adapter selon votre configuration serveur)+Nous allons appeler le fichier cron.php se trouvant à la racine de votre serveur web toutes les minutes, par l'​utilisateur www-data. ( à adapter selon votre configuration serveur)
 <​code>​ <​code>​
 $ crontab -u www-data -e $ crontab -u www-data -e
 </​code>​ </​code>​
-À la dernière ligne, rajouter le cron de 15 minutes : +À la dernière ligne, rajouter le cron de minutes : 
 /​!\Attention de bien modifier le chemin vers votre fichier cron.php ex: /​var/​www/​html/​nextcloud/​cron.php,​ ou tout autre chemin selon votre configuration,​ sinon le cron ne fonctionera pas. /!\ /​!\Attention de bien modifier le chemin vers votre fichier cron.php ex: /​var/​www/​html/​nextcloud/​cron.php,​ ou tout autre chemin selon votre configuration,​ sinon le cron ne fonctionera pas. /!\
 <​code>​ <​code>​
-*/15  ​* ​ *  *  * php -f /​var/​www/​cron.php+*/ ​* ​ *  *  * php -f /​var/​www/​cron.php
 </​code>​ </​code>​
 Quittez en enregistrant,​ puis vérifiez la configuration par  Quittez en enregistrant,​ puis vérifiez la configuration par 
 <​code>​$ crontab -u www-data -l <​code>​$ crontab -u www-data -l
-*/15  ​* ​ *  *  * php -f /​var/​www/​cron.php+*/ ​* ​ *  *  * php -f /​var/​www/​cron.php
 </​code>​ </​code>​
  
Ligne 211: Ligne 220:
 Votre serveur Nextcloud est maintenant installé et configuré selon les recommandations de l'​éditeur. Pour configurer le client, voir la page dédié au [[:​nextcloud-client|Client Nextcloud]] Votre serveur Nextcloud est maintenant installé et configuré selon les recommandations de l'​éditeur. Pour configurer le client, voir la page dédié au [[:​nextcloud-client|Client Nextcloud]]
  
-Pour vérifier le bon fonctionnement de cron depuis votre interface d'​administration Nextcloud, vous pouvez forcer le redémarrage de cron afin que le fichier cron.php soit appeler ​directement et ne pas devoir attendre le délais de 15min, pour cela redémarrer cron avec +Pour vérifier le bon fonctionnement de cron depuis votre interface d'​administration Nextcloud, vous pouvez forcer le redémarrage de cron afin que le fichier cron.php soit appelé ​directement et ne pas devoir attendre le délais de 15min, pour cela redémarrer cron avec 
 <​code>​$ sudo service cron restart <​code>​$ sudo service cron restart
 </​code>​ </​code>​
Ligne 221: Ligne 230:
 ===== Paramétrage Divers ===== ===== Paramétrage Divers =====
  
-==== Langue ​par défaut ​==== +==== Langue ==== 
-Pour définir ​la langue par défaut à chaque création d'​utilisateur, ​rajouter cette ligne dans le fichier config/​config.php : +Vous pouvez ​définir ​une langue par défaut à chaque création d'​utilisateur, ​et les paramêtre régionnaux correspondant. 
 +  
 +Pour ce faire, rajoutez ces lignes ​dans le fichier config/​config.php : 
  
-<​code>​"default_language" ​=> "​fr"​,</​code>​+<​code>​ 
 +'default_language' ​=> '​fr_FR'​, 
 +'​force_language'​ => '​fr_FR',​ 
 +'​default_locale'​ => '​fr_FR',​ 
 +'​force_locale'​ => '​fr_FR',​ 
 +</​code>​
  
 Adaptez cette valeur à la langue que vous souhaitez. ​ Adaptez cette valeur à la langue que vous souhaitez. ​
Ligne 240: Ligne 256:
  <​code>​$ service apache2 restart</​code>​  <​code>​$ service apache2 restart</​code>​
  
-[[https://​docs.nextcloud.com/​server/​17/​admin_manual/​configuration_server/​theming.html?​highlight=imagick#​theming-of-icons|Nextcloud Theming of Icons]] ​+Source : [[https://​docs.nextcloud.com/​server/​17/​admin_manual/​configuration_server/​theming.html?​highlight=imagick#​theming-of-icons|Nextcloud Theming of Icons]] ​
 ===== Voir aussi ===== ===== Voir aussi =====
  
  • nextcloud-serveur.txt
  • Dernière modification: Le 18/01/2024, 17:01
  • par lyondif02