Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| documentations:linux:debian_-_installation_de_nextcloud [2023/01/17 11:15] – créée sheltem | documentations:linux:debian_-_installation_de_nextcloud [2023/01/20 14:23] (Version actuelle) – [Configuration du cache (Optionnel)] sheltem | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Debian - Installation de Nextcloud ====== | ||
| + | |||
| ====== Prérequis ====== | ====== Prérequis ====== | ||
| * Une machine virtuelle sous Debian | * Une machine virtuelle sous Debian | ||
| Ligne 64: | Ligne 66: | ||
| * On valide simplement vu qu'il n'y a pas de mot de passe root pour le moment | * On valide simplement vu qu'il n'y a pas de mot de passe root pour le moment | ||
| + | |||
| + | Enter current password for root (enter for none): | ||
| + | OK, successfully used password, moving on... | ||
| + | | ||
| + | * On répond oui à la connexion via socket | ||
| + | witch to unix_socket authentication [Y/n] Y | ||
| + | Enabled successfully! | ||
| + | Reloading privilege tables.. | ||
| + | ... Success! | ||
| + | |||
| + | * On choisi un mot de passe pour l' | ||
| + | |||
| + | Change the root password? [Y/n] Y | ||
| + | New password: | ||
| + | Re-enter new password: | ||
| + | Password updated successfully! | ||
| + | Reloading privilege tables.. | ||
| + | ... Success! | ||
| + | |||
| + | * On interdit les connexions anonymes. | ||
| + | |||
| + | By default, a MariaDB installation has an anonymous user, allowing anyone | ||
| + | to log into MariaDB without having to have a user account created for | ||
| + | them. This is intended only for testing, and to make the installation | ||
| + | go a bit smoother. | ||
| + | production environment. | ||
| + | | ||
| + | Remove anonymous users? [Y/n] Y | ||
| + | ... Success! | ||
| + | |||
| + | * On interdit à l' | ||
| + | |||
| + | Normally, root should only be allowed to connect from ' | ||
| + | ensures that someone cannot guess at the root password from the network. | ||
| + | | ||
| + | Disallow root login remotely? [Y/n] Y | ||
| + | ... Success! | ||
| + | |||
| + | * On supprime la base de test qui ne sert a rien | ||
| + | |||
| + | By default, MariaDB comes with a database named ' | ||
| + | access. | ||
| + | before moving into a production environment. | ||
| + | | ||
| + | Remove test database and access to it? [Y/n] Y | ||
| + | - Dropping test database... | ||
| + | ... Success! | ||
| + | - Removing privileges on test database... | ||
| + | ... Success! | ||
| + | |||
| + | * On accepte de recharger les privilèges pour que les modifications prennent effet immédiatement. | ||
| + | |||
| + | Reloading the privilege tables will ensure that all changes made so far | ||
| + | will take effect immediately. | ||
| + | | ||
| + | Reload privilege tables now? [Y/n] Y | ||
| + | ... Success! | ||
| + | |||
| + | ===== Création de la base de données pour Nextcloud ===== | ||
| + | |||
| + | * On se connecte à MariaDB | ||
| + | |||
| + | mysql -u root -p | ||
| + | |||
| + | Dans certain cas, le paramètre -p doit être omis car l' | ||
| + | |||
| + | * On crée la base de données pour Nextcloud. | ||
| + | |||
| + | CREATE DATABASE nextcloud_db; | ||
| + | |||
| + | * On crée l' | ||
| + | |||
| + | CREATE USER UTILISATEURNEXCLOUD@localhost IDENTIFIED BY ' | ||
| + | |||
| + | * On donne les droits au nouvel utilisateur sur la nouvelle base de données. (Remplacer UTILISATEURNEXTCLOUD par celui choisi précédement) | ||
| + | |||
| + | GRANT ALL PRIVILEGES ON nextcloud_db.* TO UTILISATEURNEXTCLOUD@localhost; | ||
| + | |||
| + | * On applique les nouveau privilèges. | ||
| + | |||
| + | FLUSH PRIVILEGES; | ||
| + | |||
| + | * On se déconnecte de MariaDB avec la commande " | ||
| + | |||
| + | ====== Installation de Nextcloud ====== | ||
| + | |||
| + | On se place dans /var/www | ||
| + | | ||
| + | cd /var/www | ||
| + | |||
| + | On télécharge la dernière version de Nextcloud (Adapter le lien en fonction de la dernière version) | ||
| + | |||
| + | curl -o nextcloud.zip https:// | ||
| + | |||
| + | On extrait le fichier zip | ||
| + | |||
| + | unzip nextcloud.zip | ||
| + | |||
| + | On donne les droits d' | ||
| + | |||
| + | chown -R www-data: | ||
| + | |||
| + | ====== Installation d'un certificat Let's Encrypt ====== | ||
| + | |||
| + | Cela permet de tester son installation via SSL même si la solution Let's Encrypt n'est pas définitive. | ||
| + | |||
| + | On installe Certbot | ||
| + | |||
| + | apt install certbot | ||
| + | |||
| + | Une fois installé, on crée les répertoires nécessaire et on ajuste les droits | ||
| + | |||
| + | mkdir -p / | ||
| + | chgrp www-data / | ||
| + | chmod g+s / | ||
| + | |||
| + | On crée un Vhost pour Let's Encrypt avec son editeur préféré. (Exécuter l' | ||
| + | |||
| + | vi / | ||
| + | ou | ||
| + | nano / | ||
| + | |||
| + | Copier/ | ||
| + | |||
| + | Alias / | ||
| + | < | ||
| + | AllowOverride None | ||
| + | Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec | ||
| + | Require method GET POST OPTIONS | ||
| + | </ | ||
| + | |||
| + | Activer le nouveau Vhost en créant un lien symbolique dans le dossier " | ||
| + | |||
| + | a2ensite well-known.conf | ||
| + | ou | ||
| + | ln -s / | ||
| + | |||
| + | On redémarre apache | ||
| + | |||
| + | systemctl restart apache2 | ||
| + | |||
| + | On génère un certificat (Remplacer UTILISATEUR@DOMAINE.COM et DOMAINE.COM) | ||
| + | |||
| + | certbot certonly --agree-tos --email UTILISATEUR@DOMAINE.COM --webroot -w / | ||
| + | |||
| + | ====== Création des Virtual Hosts Apache ====== | ||
| + | Pour simplifier la configuration, | ||
| + | les connexions sur le ports 80 sont automatiquement redirigés vers la connexion 443. | ||
| + | |||
| + | Créer le fichier de configuration des Vhosts avec votre éditeur préféré. (Exécuter l' | ||
| + | |||
| + | vi / | ||
| + | ou | ||
| + | nano / | ||
| + | |||
| + | Coller le contenu suivant en remplaçant " | ||
| + | |||
| + | < | ||
| + | ServerName DOMAINE.COM | ||
| + | ServerAlias www.DOMAINE.COM | ||
| + | | ||
| + | # auto redirect HTTP to HTTPS | ||
| + | Redirect permanent / https:// | ||
| + | </ | ||
| + | | ||
| + | < | ||
| + | ServerName DOMAINE.COM | ||
| + | ServerAlias www.DOMAINE.COM | ||
| + | | ||
| + | DocumentRoot / | ||
| + | | ||
| + | Protocols h2 http/1.1 | ||
| + | | ||
| + | # log files | ||
| + | ErrorLog / | ||
| + | CustomLog / | ||
| + | | ||
| + | SSLEngine On | ||
| + | SSLCertificateFile / | ||
| + | SSLCertificateKeyFile / | ||
| + | | ||
| + | # HSTS | ||
| + | < | ||
| + | Header always set Strict-Transport-Security " | ||
| + | </ | ||
| + | | ||
| + | < | ||
| + | Options +FollowSymlinks | ||
| + | AllowOverride All | ||
| + | | ||
| + | < | ||
| + | Dav off | ||
| + | </ | ||
| + | | ||
| + | SetEnv HOME / | ||
| + | SetEnv HTTP_HOME / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | On active les Vhosts | ||
| + | |||
| + | a2ensite nextcloud.conf | ||
| + | ou | ||
| + | ln -s / | ||
| + | |||
| + | Il est possible de tester toute la configuration d' | ||
| + | |||
| + | apachectl configtest | ||
| + | |||
| + | Redémarrer Apache | ||
| + | |||
| + | systemctl restart apache2 | ||
| + | |||
| + | ====== Configuration de Nextcloud ====== | ||
| + | Si la procédure d' | ||
| + | Il est donc nécessaire de donner les droits d' | ||
| + | |||
| + | Donner les droits à Apache sur le répertoire /DATA (Si il n'est pas dans le répertoire de Nextcloud) | ||
| + | |||
| + | chown -R www-data: | ||
| + | |||
| + | A ce stade l' | ||
| + | |||
| + | * Ouvrer un navigateur est entrer l'URL définitive. | ||
| + | * L' | ||
| + | * **Créer un compte adminstrateur.** | ||
| + | * Indiquer** /DATA** en tant que **répertoire de données.** | ||
| + | * Indiquer le nom de la base de données crée précédement | ||
| + | * Indiquer l' | ||
| + | * Indiquer le mot de passe défini précédement pour l' | ||
| + | * l' | ||
| + | |||
| + | ===== Configuration des tâches planifiées ===== | ||
| + | |||
| + | * Rendez-vous dans l' | ||
| + | * Cliquer sur le logo de profil (en haut à droite) | ||
| + | * Cliquer sur **Administration Settings** puis **Paramêtres de base** | ||
| + | * Sélectionner **Cron (Recommandé)** | ||
| + | * Se connecter en SSH au serveur | ||
| + | * Créer la tâche planifiée | ||
| + | |||
| + | crontab -u www-data -e | ||
| + | |||
| + | Ajouter la ligne suivante à la fin du fichier et quitter **(Remplacer par le chemin vers le fichier cron.php)** | ||
| + | |||
| + | */5 * * * * php -f / | ||
| + | |||
| + | Il est possible de vérifier que la modification est bien enregistrée avec la commande suivante | ||
| + | |||
| + | crontab -u www-data -l | ||
| + | |||
| + | Il est possible de vérifié que la tâche s' | ||
| + | |||
| + | ====== Configuration du cache (Optionnel) ====== | ||
| + | |||
| + | La méthode la plus courant et la plus simple est d' | ||
| + | |||
| + | Installer Redis Server et php-redis | ||
| + | |||
| + | apt install redis-server php-redis | ||
| + | |||
| + | Éditer le fichier de configuration de redis-server | ||
| + | |||
| + | vi / | ||
| + | |||
| + | Dé-commenter et modifier les lignes suivantes | ||
| + | On enlève "/ | ||
| + | On remplace 700 par 770 sur la seconde | ||
| + | |||
| + | unixsocket / | ||
| + | unixsocketperm 770 | ||
| + | |||
| + | Dé-commenter et modifier également | ||
| + | On remplace 6379 par 0 | ||
| + | |||
| + | port 0 | ||
| + | |||
| + | Ajouter l’utilisateur www-data (Utiliser par Nextcloud au groupe Redis) | ||
| + | |||
| + | usermod -a -G redis www-data | ||
| + | |||
| + | Éditer le fichier de configuration de nextcloud pour y ajouter l' | ||
| + | |||
| + | vi / | ||
| + | |||
| + | Ajouter les lignes suivante en fin de fichier mais avant le dernier **" | ||
| + | |||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | array ( | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | |||
| + | Démarrer redis-server | ||
| + | |||
| + | service redis-server start | ||
| + | |||
| + | Redémarrer le serveur web Apache | ||
| + | |||
| + | service apache2 restart | ||
| + | |||
| + | ====== Notes ====== | ||
| + | Emplacement des fichiers | ||
| + | |||
| + | / | ||
| + | / | ||
| + | | ||
| + | ====== Commandes utiles ====== | ||
| + | |||
| + | Statut Apache | ||
| + | |||
| + | systemctl status apache2 | ||
| + | |||
| + | Statut Let's Encrypt | ||
| + | |||
| + | systemctl status certbot.timer | ||
| + | |||
| + | Test de renouvellement du certificat | ||
| + | |||
| + | certbot renew --dry-run | ||
| + | |||
| + | Activer un site Apache | ||
| + | |||
| + | a2ensite nomduvhost.conf | ||
| + | ou | ||
| + | ln -s / | ||
