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
nextcloud-serveur [Le 08/11/2021, 08:48]
bruno [Installer les paquets PHP requis] MAJ
nextcloud-serveur [Le 18/01/2024, 17:01] (Version actuelle)
lyondif02 [Pré-requis] précision SGBD valable
Ligne 17: Ligne 17:
 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 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 =====
  
-  * Disposer d'un [[:​serveur|serveur]] +  * Disposer d'un [[:​serveur|serveur]]. 
-  * Avoir un [[:​lamp|serveur ​Web avec PHP]] installé ​dessus ​(ici [[:​apache2|Apache2]]),​ avoir activé le [[:​tutoriel/​securiser_apache2_avec_ssl#​mise_en_application_avec_le_serveur_http_apache2|mode SSL d'apache]] (https), avoir un [[:​openssh|serveur ​ssh]] (conseillé),​ ainsi qu'une base de données (ici [[:mysql|mysql]]). +  * Avoir un [[:​lamp|serveur ​web avec PHP]] installé (ici [[:​apache2|Apache2]]),​ avoir activé le [[:​tutoriel/​securiser_apache2_avec_ssl#​mise_en_application_avec_le_serveur_http_apache2|mode SSL d'Apache]] (https), avoir un [[:​openssh|serveur ​SSH]] (conseillé),​ ainsi qu'un serveur de gestion de base de données (ici [[:mysql|MySQL]] ou [[:​mariadb|MariaDB]]). 
-  * Savoir ​ajouter ​une tâche [[:​cron|CRON]] +  * Savoir ​planifier ​une tâche ​avec [[:​cron|CRON]]. 
-  * Savoir installer et activer des [[:​php#​modules|modules ​php]] et [[:apache2|apache]]. +  * Savoir installer et activer des [[:​php#​modules|modules ​PHP]] et [[:apache2|Apache]]. 
-  * Savoir créer une base de données [[:​mysql|MySQL]]. +  * Savoir créer une base de données [[:​mysql|MySQL]] / [[:​mariadb|MariaDB]]. 
-  * Avoir un PC client avec un navigateur web et un client SSH.+  * Avoir un ordinateur (PC, Mac) ou un mobile (//​smartphone//​) disposant d’un navigateur web et d’un client SSH.
   * Disposer des [[:​sudo|droits d'​administration]] sur le serveur.   * Disposer des [[:​sudo|droits d'​administration]] sur le serveur.
   * 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 une interface d'adiministration ​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é ​ou sur un serveur privé virtuel (VPS), avec une interface d'administration ​web du 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 ====
  
Ligne 37: Ligne 37:
 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 :​ 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>​ <​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.+N.B. : l’emplacement ​/​var/​www/​nextcloud n'est qu'un exemple. Vous pouvez utiliser le répertoire de votre choix.
  
 ====Créer la base de données et l'​utilisateur MySQL / Mariadb==== ====Créer la base de données et l'​utilisateur MySQL / Mariadb====
Ligne 70: Ligne 70:
       AllowOverride All       AllowOverride All
       Options FollowSymLinks MultiViews       Options FollowSymLinks MultiViews
-    <​Directory>​+    </Directory>​
 </​VirtualHost>​ </​VirtualHost>​
 </​file>​ </​file>​
 Si vous avez un nom de domaine, utilisez-le dans la directive ServerName à la place du nom local (nextcloud.localhost). Si vous avez un nom de domaine, utilisez-le dans la directive ServerName à la place du nom local (nextcloud.localhost).
-Puis entrez les commandes suivantes +Puis activez ce nouvel hôte virtuel ​
-  ​* ​<​code>​a2ensite nextcloud.conf</​code>​ +<​code>​a2ensite nextcloud.conf</​code>​ 
-  ​* ​<​code>​a2enmod headers+Activez les modules Apache indispensables : 
 +<​code>​a2enmod headers
 a2enmod env a2enmod env
 a2enmod dir a2enmod dir
 a2enmod mime</​code>​ a2enmod mime</​code>​
  
-  * Donnez les droits adéquats aux fichiers et répertoires :​ <​code>​chown -R www-data:​www-data /​var/​www/​nextcloud/</​code>​ +Donnez les droits adéquats aux fichiers et répertoires :​ <​code>​chown -R www-data:​www-data /​var/​www/​nextcloud/</​code>​ 
-  * Redémarrez ​apache : <​code>​sudo systemctl restart apache2</​code>​+Finalement, redémarrez ​apache : <​code>​sudo systemctl restart apache2</​code>​
  
-==== Accès à l'installateur ​==== +==== Assistant d'installation de Nextcloud ​==== 
-{{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_module_php_install.png?​direct&​500|}}+{{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}} 
 +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''​
  
-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. Par exemple sur le serveur : ''​http://​nextcloud.localhost''​ +La fenêtre va vous demander de définir ​un nom d'​utilisateur et un mot de passe pour l'​administrateurC'est ce compte qui servira à créer d'autres comptes, à mettre à jour, à installer des applications,​ etc.\\
-La fenêtre va vous demander de donner ​un nom d'​utilisateur et un mot de passe. Il faudra aussi entrer un nom pour la base de donnéesSi vous avez pris les exemples plus haut elle s'appelle nextcloud. +
-Patientez durant le téléchargement de certains modules+
  
 +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.
  
-==== Identifiant emplacement de stockage et base de données ​ ==== +Pour le choix du répertoire des donnéesil 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'​emplacementil 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.
-{{ :​utilisateurs:​filerem1:​nextcloud:​nextcloud_install_server-2.png?​direct&​200|}} +
-À cette étape, vous allez créer ​le fichier de configuration du serveur ​nextcloud.  +
- +
-  * 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.+
  
 +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 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. 
  
  
-  * Choisissez la base de données (celle crée précédemment avec son utilisateur) 
-  - 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. 
-==== 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 135: Ligne 117:
 Par défaut, même après avoir activé le mode SSL d'​apache et déclaré votre site, l'​accès en HTTP fonctionne toujours. Nous allons paramétrer une redirection automatique de HTTP vers HTTPS, comme le[[ https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​harden_server.html#​use-https|préconise la documentation Nextcloud]]. Par défaut, même après avoir activé le mode SSL d'​apache et déclaré votre site, l'​accès en HTTP fonctionne toujours. Nous allons paramétrer une redirection automatique de HTTP vers HTTPS, comme le[[ https://​docs.nextcloud.com/​server/​9/​admin_manual/​configuration_server/​harden_server.html#​use-https|préconise la documentation Nextcloud]].
 <​note>​Partie à revoir</​note>​ <​note>​Partie à revoir</​note>​
-Ouvrez votre session SSH en administrateur,​ et modifiez le fichier de configuration de votre site qui se trouve dans ce dossier : +Ouvrez votre session SSH en administrateur,​ et modifiez le fichier de configuration de votre site qui se trouve dans ce dossier :
 <​code>​$ nano /​etc/​apache2/​sites-available/"​votre-site.conf" ​  # remplacer "​votre-site.conf par le nom correct de votre fichier de configuration</​code>​ <​code>​$ nano /​etc/​apache2/​sites-available/"​votre-site.conf" ​  # remplacer "​votre-site.conf par le nom correct de votre fichier de configuration</​code>​
 Rajouter en dessous de la ligne **"​ServerName cloud.nextcloud.com"​**:​ Rajouter en dessous de la ligne **"​ServerName cloud.nextcloud.com"​**:​
Ligne 150: Ligne 132:
  
 ==== Utilisation HTTP/2 pour le HTTPS ==== ==== Utilisation HTTP/2 pour le HTTPS ====
-Si votre site est configuré pour le HTTPS, il est conseillé ​d'activer également ​le protocole HTTP/2.+Si votre site est configuré pour le HTTPS, il est possible ​d'utiliser ​le protocole HTTP/​2 ​qui est censé améliorer les performances.
 Il faut commencer par activer le module http2 d'​Apache. Il faut commencer par activer le module http2 d'​Apache.
-<note important>​Ce module ​n'​est ​pas disponible ​par défaut ​dans Ubuntu 16.04. Vous pouvez cependant l'​installer,​ à vos risques et périls, via la procédure décrite ici : [[https://websetnet.net/fr/set-apache-http2-support-ubuntu-16-04/​|Comment configurer Apache avec le support HTTP / 2 sur Ubuntu 16.04]]</​note>​+<note important>​Le module ​http2 a très peu d’intérêt s'il est utilisé avec le MPM prefork d'​Apache qui est celui utilisé ​par défaut. [[https://httpd.apache.org/docs/​2.4/​howto/http2.html#mpm-config|Voir la doc ici]]</​note>​
 <​code>​$ a2enmod http2</​code>​ <​code>​$ a2enmod http2</​code>​
 Rajoutez les lignes suivantes à votre fichier de configuration d'​hôte virtuel HTTPS : Rajoutez les lignes suivantes à votre fichier de configuration d'​hôte virtuel HTTPS :
Ligne 167: Ligne 149:
 Pour ce faire, nous allons retourner dans notre session SSH et modifier le fichier de configuration d'​hôte virtuel HTTPS. Pour ce faire, nous allons retourner dans notre session SSH et modifier le fichier de configuration d'​hôte virtuel HTTPS.
  
-Rajouter en dessous de "​**ServerName**"​ : +Rajouter en dessous de "​**ServerName**"​ :
 <​code>​ <​code>​
 <​IfModule mod_headers.c>​ <​IfModule mod_headers.c>​
Ligne 173: Ligne 155:
 </​IfModule>​ </​IfModule>​
 </​code>​ </​code>​
-On enregistre, on quitte l'​éditeur,​ puis on active le module correspondant dans apache, pour que ces lignes soient prises en compte : +On enregistre, on quitte l'​éditeur,​ puis on active le module correspondant dans apache, pour que ces lignes soient prises en compte :
 <​code>​a2enmod headers</​code>​ <​code>​a2enmod headers</​code>​
 On redémarre le serveur apache pour que la configuration soit prise en compte, puis on recharge la page web du serveur Nextcloud. La ligne traitant de "HTTP Strict-Transport-Security"​ à disparu, nous pouvons continuer. On redémarre le serveur apache pour que la configuration soit prise en compte, puis on recharge la page web du serveur Nextcloud. La ligne traitant de "HTTP Strict-Transport-Security"​ à disparu, nous pouvons continuer.
 ==== Cache mémoire ==== ==== Cache mémoire ====
-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 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. 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.
Ligne 190: Ligne 172:
 Puis on modifie le fichier config.php se trouvant dans le dossier config du serveur. Puis on modifie le fichier config.php se trouvant dans le dossier config du serveur.
  
-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 Nextcloud : 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 203: Ligne 188:
 Nous allons éditer le fichier php.ini, pour activer la prise en charge d'​OPcache. Nous allons éditer le fichier php.ini, pour activer la prise en charge d'​OPcache.
 <​code>​$ nano /​etc/​php/​7.x/​apache2/​php.ini ​   # remplacez 7.x par votre version de php</​code>​ <​code>​$ nano /​etc/​php/​7.x/​apache2/​php.ini ​   # remplacez 7.x par votre version de php</​code>​
-rajouter, tout en bas du fichier : +rajouter, tout en bas du fichier :
 <​code>​ <​code>​
 opcache.enable=1 opcache.enable=1
Ligne 222: Ligne 207:
 $ crontab -u www-data -e $ crontab -u www-data -e
 </​code>​ </​code>​
-À la dernière ligne, rajouter le cron de 5 minutes : +À la dernière ligne, rajouter le cron de 5 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>​
 */5  *  *  *  * php -f /​var/​www/​cron.php */5  *  *  *  * 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
 */5  *  *  *  * php -f /​var/​www/​cron.php */5  *  *  *  * php -f /​var/​www/​cron.php
Ligne 235: 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 appelé 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 248: Ligne 233:
 Vous pouvez définir une langue par défaut à chaque création d'​utilisateur,​ et les paramêtre régionnaux correspondant. 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 : +Pour ce faire, rajoutez ces lignes dans le fichier config/​config.php :
  
 <​code>​ <​code>​
Ligne 257: Ligne 242:
 </​code>​ </​code>​
  
-Adaptez cette valeur à la langue que vous souhaitez. ​+Adaptez cette valeur à la langue que vous souhaitez.
  
 Source : [[https://​docs.nextcloud.com/​server/​12.0/​admin_manual/​configuration_server/​language_configuration.html|Nextcloud Language Configuration]] Source : [[https://​docs.nextcloud.com/​server/​12.0/​admin_manual/​configuration_server/​language_configuration.html|Nextcloud Language Configuration]]
  
 ==== Thème ==== ==== Thème ====
-Pour que l'​interface web adapte les icônes automatiquement à vos couleur, installez ceci : +Pour que l'​interface web adapte les icônes automatiquement à vos couleur, installez ceci :
 <​code>​$ sudo apt install php-imagick libmagickcore-6.q16-3-extra</​code>​ <​code>​$ sudo apt install php-imagick libmagickcore-6.q16-3-extra</​code>​
 On Active le module php : On Active le module php :
Ligne 271: Ligne 256:
  <​code>​$ service apache2 restart</​code>​  <​code>​$ service apache2 restart</​code>​
  
-Source : [[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.1636357691.txt.gz
  • Dernière modification: Le 08/11/2021, 08:48
  • par bruno