Ceci est une ancienne révision du document !
Debian - Installation de Nextcloud
Prérequis
- Une machine virtuelle sous Debian
- Une entrée DNS valide. (Par default, Nextcloud ne répond qu'a son nom)
- Les ports 80 et 443 redirigés vers Nextcloud (80 pour Let's Encrypt)
- curl (apt install curl)
- unzip (apt install unzip)
Procédure d'Installation
Installation d'apache
Si Apache a été installé via l'installeur de Debian, passer directement à l'installation des modules supplémentaires.
- Mise à jour des repository Debian
apt update
- Installation d'apache
apt install apache2
Après l'installation, on vérifie qu'apache est activé au démarre et lancé
systemctl is-enabled apache2 systemctl status apache2
Installation des modules
- On active les modules nécessaire à l'utilisation de nextcloud (ssl, rewrite et headers)
a2enmod ssl rewrite headers
- On redémarre apache
systemctl restart apache2
- On vérifie que ces modules soient bien chargés.
apachectl -M | egrep "ssl|rewrite|headers"
- On devrait voir des lignes similaires à celles ci dans la sortie
headers_module (shared) rewrite_module (shared) ssl_module (shared)
Installation de PHP
- Installation des paquets de base + les paquets nécessaires à Nextcloud
apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-ldap php-bcmath php-gmp php-apcu libmagickcore-dev
Installation de MariaDB
- Installation du client et du serveur
apt install mariadb-server mariadb-client
- Vérifier que MariaDB est activé au démarrage et lancé
systemctl is-enabled mariadb systemctl status mariadb
- Une fois installé, on exécute l'assistant de sécurisation de MariaDB
mysql_secure_installation
- 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'utilisateur root
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. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success!
- On interdit à l'utilisateur root de se connecter à distance. (cela ne devrait jamais être nécessaire)
Normally, root should only be allowed to connect from 'localhost'. This 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 'test' that anyone can access. This is also intended only for testing, and should be removed 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'utilisateur root du système peut se connecter en tant que root de MariaDB sans avoir a entrer le mot de passe.
- On crée la base de données pour Nextcloud.
CREATE DATABASE nextcloud_db;
- On crée l'utilisateur de service pour l'accès à la base nouvellement créée. (Remplacer UTILISATEURNEXCLOUD et PASSWORD)
CREATE USER UTILISATEURNEXCLOUD@localhost IDENTIFIED BY 'PASSWORD';
- 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 “quit”
