Ceci est une ancienne révision du document !
Un serveur de services ne serait pas complet s'il n'avait pas son petit nuage. Sur le marché des logiciels Cloud libres, on peut trouver OwnCloud et NextCloud. En fait, NextCloud est un “produit” 100% open-source dérivé de OwnCloud. Pour cette raison, ces deux outils sont très similaires, car ils possèdent le même noyau. Cet article va décrire l'installation de NextCloud en utilisant un Object Storage comme stockage primaire.
Depuis la version 16 de NextCloud, il faut une version supérieure à PHP7.1. Actuellement, la version la plus récente de PHP est la version 7.3, donc c'est celle-ci que tu vas installer.
Ajout de repository de PHP
sudo apt install ca-certificates apt-transport-https wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
Installation de PHP7.3
sudo apt-get install libapache2-mod-php7.3 sudo apt-get install php7.3-gd php7.3-json php7.3-mysql php7.3-curl php7.3-mbstring sudo apt-get install php7.3-intl php-imagick php7.3-xml php7.3-zip php7.3-ldap
Commence par créer le certificat SSL pour https://cloud.aprilas.fr.
sudo /etc/init.d/apache2 stop /opt/letsencrypt/letsencrypt-auto --rsa-key-size 4096 certonly --standalone -d cloud.aprilas.fr sudo /etc/init.d/apache2 start
Crée un nouveau hôte virtuel dans Apache2. Pour cela, créer le fichier /etc/apache2/sites-available/nextcloud.conf
avec le contenu suivant :
<VirtualHost *:80> ServerName cloud.aprilas.fr ServerAdmin admin@aprilas.fr RewriteEngine on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L] </VirtualHost> <VirtualHost *:443> ServerName cloud.aprilas.fr ServerAdmin admin@aprilas.fr Header always set Strict-Transport-Security "max-age=15552000" DocumentRoot /var/www/nextcloud ErrorLog /var/log/apache2/cloud.log Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/cloud.aprilas.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/cloud.aprilas.fr/privkey.pem <Directory /var/www/nextcloud/> Require all granted Options FollowSymlinks MultiViews AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory> php_value memory_limit 512M </VirtualHost>
Il faut activer certains modes pour faire fonctionner NextCloud.
a2enmod rewrite headers env dir mime
A présent, tu peux activer l'hôte virtuel du Cloud.
a2ensite nextcloud sudo /etc/init.d/apache2 reload
Afin de pouvoir profiter au maximum des services que nous propose NextCloud. Il faut changer l'encodage de la base de données. La procédure suivante est valable pour MariaDB10.2 ou inférieur (ce qui était mon cas). Sinon trouve la procédure sur … . Pour connaître ta version de Maria, exécute mysql -e "SELECT version();"
.
Edite le fichier /etc/mysql/mariadb.conf.d/50-server.cnf
et ajoute dans la section InnoDB les lignes suivantes :
innodb_large_prefix=true innodb_file_format=barracuda innodb_file_per_table=1
Redémarre Mysql.
sudo /etc/init.d/mysql restart
A présent, crée la base de données de NextCloud.
En supposant que tu en dispose, connecte-toi à PHPmyAdmin en tant qu'administrateur. Crée une base de donnée avec
nextcloud
comme nomuft8mb4_general_ci
comme encodage
Puis, crée un utilisateur nextcloud
et donne lui tous les droits sur la base ''nextcloud''.
Télécharge NextCloud et vérifie le fichier téléchargé (pour qu'un pirate informatique ne te fasse pas installer un virus). Bien entendu, sélectionne la dernière version.
wget https://download.nextcloud.com/server/releases/nextcloud-16.0.4.tar.bz2 wget https://download.nextcloud.com/server/releases/nextcloud-16.0.4.tar.bz2.md5 md5sum -c nextcloud-x.y.z.tar.bz2.md5 < nextcloud-x.y.z.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-x.y.z.tar.bz2.asc wget https://nextcloud.com/nextcloud.asc gpg --import nextcloud.asc gpg --verify nextcloud-x.y.z.tar.bz2.asc nextcloud-x.y.z.tar.bz2
Décompresse l'archive (sudo apt-get install bzip2
si bzip2 n'est pas encore installé sur le système).
tar -xjf nextcloud-x.y.z.tar.bz2
Déplace NextCloud et affecte lui le bon propriétaire.
mv -r nextcloud /var/www chown -R www-data:www-data /var/www/nextcloud
Je te propose (conseil de la documentation de NextCloud) d'utiliser APCu pour le cache local et Redis pour le cache distribué.
APCu
Installe APCu et redémarre Apache2.
sudo apt-get install php-apcu sudo /etc/init.d/apache2 restart
Redis
Installe Redis (qui fonctionne en tant que démon).
sudo apt-get install redis-server php-redis
Edite le fichier de configuration de Redis /etc/redis/redis.conf
. On va l'utiliser avec des sockets (toujours conseillé par NextCloud).
unixsocket /var/run/redis/redis.sock unixsocketperm 775 bind 127.0.0.1 daemonize yes stop-write-on-bgsave-error no rdbcompression yes maxmemory 50M maxmemory-policy allkeys-lru
Redémarre le démon de Redis.
sudo /etc/init.d/redis-server restart
Tu peux vérifier que la socket a bien été créée.
ls -lh /var/run/redis
Ajoute www-data
au groupe redis
afin que le serveur Web puisse accéder au service de cache (ie à la socket de Redis).
sudo usermod -a -G redis www-data
Redémarre Apache2
sudo /etc/init.d/apache2 restart
Configurer NextCloud
Crée le fichier de configuration /var/www/nextcloud/config/memcache.config.php
avec le contenu suivant :
<?php $CONFIG = array( 'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => '/var/run/redis/redis.sock, 'port' => 0, ), ); ?>
Si tu as déjà installé NextCloud (via l'interface graphique ou via l'API), il faut que tu rajoutes ces options directement dans le fichier /var/www/nextcloud/config/config.php
.
Crée le fichier de configuration /var/www/nextcloud/config/log.config.php
avec le contenu suivant :
<?php $CONFIG = array( 'logfile' => '/var/log/nextcloud.log', 'loglevel' => 2, 'logtimezone' => 'Europe/Paris', ?>
Si tu as déjà installé NextCloud (via l'interface graphique ou via l'API), il faut que tu rajoutes ces options directement dans le fichier /var/www/nextcloud/config/config.php
.
Si tu voulais faire une installation classique où les fichiers sont sauvegardés dans un dossier du serveur (et non pas sur un Object Storage), tu peux sauter cette étape.
Créer le fichier /var/www/nextcloud/config/storage.config.php
avec le contenu suivant :
<?php $CONFIG = array( ); ?>
Il est fortement déconseillé de changer la configuration de l'espace primaire de stockage après l'installation de NextCloud (via l'interface graphique ou l'API). En effet, cela aurait pour conséquence de rendre tous les fichiers sur le Cloud inaccessible et cela augmenterait les probabilités d'avoir une installation cassée (pendant mes tests, cela m'est arrivé plusieurs fois).
A présent que tous les fichiers de configuration initiale sont en place, il est temps d'installer NextCloud. Pour cela, deux méthodes.
admin
storage.config.php
)sudo -u www-data php occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextcloud" --database-pass "..." --admin-user "admin" --admin-pass "..."
Après l'installation, tu peux te connecter avec le compte administrateur, et changer le nom d'affichage de l'utilisateur en “Administrateur” (c'est plus joli ) ainsi que l'adresse mail en
admin@aprilas.fr
.
Pour la suite des opérations, va sur https://cloud.aprilas.fr avec un compte qui possède les droits d'administrateur.
Tout d'abord, va dans la liste des applications, et active celle dénommée LDAP user and group backend
. Ensuite, va dans dans les paramètres et trouve l'onglet de l'intégration LDAP/AD.
Sur la page Serveur, rentre les informations suivantes :
Sur la page Utilisateurs, rentre les informations suivantes :
Sur la page Attributs de login, rentre les informations suivantes :
Ne touche pas à la page Groupes.
Sur la page Avancé, rentre les informations suivantes :
Afin que NextCloud puisse exécuter des tâches régulièrement, il faut rajouter une entrée dans CRON. Pour cela, tape dans un terminal du serveur :
crontab -u www-data -e
Et ajoute l'entrée
Puis, sur https://cloud.aprilas.fr, dans les paramètres de base de l'administration, clique sur “Cron”.
Il faut configurer NextCloud afin qu'il puisse envoyer des emails. Pour cela, on va créer un compte spécial pour NextCloud afin d'utiliser ce compte pour le serveur SMTP.
adduser nextcloud
Et renseigne les informations suivantes :
nextcloud@aprilas.fr
Renseigne les informations suivantes :