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 22/04/2020, 22:44]
51.89.200.104 [Cache mémoire]
nextcloud-serveur [Le 08/11/2021, 09:00]
bruno [Accès à l'installateur]
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'emplacment /​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 PHP. Connectez 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>​ 
 + 
 +Remplacez username et password par vos identifiant et mot de passe. 
 + 
 +====Installer les paquets PHP requis==== 
 +Un certain nombre de modules PHP sont indispensablesPour les installer, si ce n'est déjà fait : 
 +<​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'​administration, et 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 ==== 
 + 
 +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''​ 
 + 
 +La fenêtre va vous demander de définir un nom d'​utilisateur et un mot de passe pour l'​administrateur.  
 +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. 
 +Patientez durant le téléchargement de certains modules. ​
  
-   $ apt install php-zip php-gd php-curl php-intl 
-  ​ 
- 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 page. Vous devriez maintenant voir l'​étape suivante. 
-  
 ==== Identifiant, ​ emplacement de stockage et base de données ​ ==== ==== Identifiant, ​ emplacement de stockage et base de données ​ ====
 {{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}} {{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}}
Ligne 64: Ligne 104:
  
  
-  * Choisissez la base de données. Avant de remplir ce champ, il faut que la 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 :   +  * Choisissez la base de données ​(celle crée précédemment avec son utilisateur)
- +
-<​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 ;    - Utilisateur de la base de donnée ; 
   - Mot de passe de la base de donnée ;   - Mot de passe de la base de donnée ;
Ligne 79: Ligne 111:
   * 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).   * 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.   * Lorsque la page de connexion apparaît, l'​installation est terminée. Procédez ensuite au réglage des performances du serveur Nextcloud.
 +==== Rendre accessible le serveur par les clients ====
 +Pour que des périphériques clients puissent avoir accès à votre serveur il est nécessaire de modifier le fichier config.php qui se trouve dans ''/​var/​www/​nextcloud/​config/''​ et y ajouter l'IP de votre serveur dans le champ ''​trusted domain''​ :​ <file php>
 +'​trusted_domains'​ =>
 +  array (
 +   0 => '​localhost',​
 +   1 => '​server1.example.com',​
 +   2 => '​192.168.1.50',​
 +   3 => '​[fe80::​1:​50]',​
 +),</​file>​
  
 ==== Applications ==== ==== Applications ====
Ligne 86: Ligne 127:
 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 181:
 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 194: Ligne 220:
 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 237:
 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 228: Ligne 254:
 <​code>​ <​code>​
 '​default_language'​ => '​fr_FR',​ '​default_language'​ => '​fr_FR',​
-'​force_language'​ => 'fr-FR',+'​force_language'​ => 'fr_FR',
 '​default_locale'​ => '​fr_FR',​ '​default_locale'​ => '​fr_FR',​
-'​force_locale'​ => 'fr-FR',+'​force_locale'​ => 'fr_FR',
 </​code>​ </​code>​
  
  • nextcloud-serveur.txt
  • Dernière modification: Le 19/04/2024, 11:42
  • par spnux