- Nextcloud-Install
-
Une machine Unix:
- Raspbian
- Debian
- Ubuntu
- ...
-
Un accès internet
-
Un accès CLI
Dans /etc/network/interfaces ajouter la configuration réseau en fonction du nom de l'interface réseau :
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.56.1
dns-nameservers 1.1.1.1
ip apour lister les interfaces réseau de la machine
On commence par mettre à jour notre machine.
sudo apt updatesudo apt upgrade Ici l'installation se fera avec un serveur apache2, dernière version de PHP et un SGBD (PostgreSQL ou Apache2).
sudo apt install apache2sudo apt install php php-common php-gd php-igbinary php-imagick php php-bcmath php-cli php-curl php-gd php-gmp php-igbinary php-intl php-json php-mbstring php-readline php-xml php-zip- PostgreSQL
sudo apt install postgresql php-pgsql- MariaDB
sudo apt install mariadb-server libapache2-mod-php php-mysqlNous pouvons vérifier la bonne installation du serveur Apache en tapant directement l'adresse IP de la machine dans un navigateur web :
Nextcloud peut être installé n'importe où sur votre machine, dans notre cas nous allons l'installer au sein du dossier /var/www/ mais il pourrait très bien être localisé dans /home/user
sudo mkdir -p /var/www/html/nextcloudOn récupère le fichier php qui va nous permettre d'installer Nextcloud:
wget https://download.nextcloud.com/server/installer/setup-nextcloud.phpMaintenant il est nécessaire de donner les droits à l'utilisateur www-data :
sudo chown -R www-data:www-data /var/www/html/nextcloudNormalement, arrivé à cette étape, vous avez installé PostgreSQL. Maintenant, il faut configurer votre base de données et votre utilisateur pour qu'ils soient par la suite accessible par le php.
Pour cela, on commence par accéder à sa base de données en ligne de commande:
sudo -u postgres psqlEnsuite, vous devriez obtenir un bash avec comme prompt: postgres=#.
Cela signifie que vous êtes bien connecté.
On va donc créer notre base de données et notre utilisateur:
CREATE USER myuser WITH PASSWORD 'toto' CREATEDB;
CREATE DATABASE mydatabase OWNER myuser;On quitte l'interface:
\qTerminer la configuration de mysql :
mysql_secure_installation
Set root password? [Y/n] : Y
Remove anonymous users? [Y/n] : Y
Disallow root login remotely? [Y/n] : Y
Remove test database and access to it? [Y/n] : Y
Reload privilege tables now? [Y/n] : Y
Connexion à mariadb :
sudo mysql
Creation d'un utilisateur pour le serveur Nextcloud :
CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'password';Création de la base de donnée :
CREATE DATABASE IF NOT EXISTS nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;Droits à notre utilisateur Nextcloud :
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost';Application les changements :
FLUSH PRIVILEGES;Maintenant que notre base de données est configurée, il ne nous reste plus qu'à installer le serveur en lui-même.
Pour cela, il faut déjà créer le site virtuel pour apache afin de terminer l'installation en interface web.
On crée donc un site virtuel:
# on copie le fichier de conf par défaut pour créer le notre
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nextcloud.conf
# on modifie notre fichier de configuration
sudo nano /etc/apache2/sites-available/nextcloud.confUne fois le fichier ouvert, on lui ajoute les lignes suivantes:
ServerName nextcloud.mydomain.tld
ServerAdmin [email protected]
DocumentRoot /var/www/html/nextcloud
<Directory /var/www/html/nextcloud>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
Maintenant que notre site est créé, on l'active:
# on active le site virtuel
sudo a2ensite nextcloud.conf
# on redémarre le serveur web
sudo systemctl restart apache2.serviceAfin de terminer l'installation de votre serveur, il faut maintenant vous rendre sur l'interface web de celui-ci. On accède donc à 127.0.0.1:80.
Si vous souhaitez avoir des URL sans extensions de fichiers, il suffit d'activer deux modules et de rajouter de la configuration.
Si vous hébergez votre nextcloud sur derrière un nom de dossier comme https://mydomain.tld/nextcloud/, alors vous devez rajouter les lignes suivantes dans votre fichier config.php:
sudo nano /var/www/html/nextcloud/config/config.php'overwrite.cli.url' => 'https://mydomain.tld/nextcloud',
'htaccess.RewriteBase' => '/nextcloud',Si vous hébergez votre nextcloud directement sur votre domaine comme https://mydomain.tld, alors vous devez rajouter les lignes suivantes dans votre fichier config.php:
sudo nano /var/www/html/nextcloud/config/config.php'overwrite.cli.url' => 'https://mydomain.tld/',
'htaccess.RewriteBase' => '/',Dans les 2 cas, vous devez ensuite effectuer la commande suivante pour mettre à jour votre fichier .htaccess:
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:update:htaccessMaintenant que vous avez fini de configurer votre serveur dans son ensemble, vous devez aller sur son interface web, accessible par ip_serveur:port, dans notre cas, 127.0.0.1:80.
Il va falloir spécifier la localisation du dossier des données utilisateur, il peut très bien être en dehors du dossier nextcloud mais il faudra bien penser à donner les droits à l'utilisateur www-data. Pour nous c'est: /var/www/html/nextcloud/data.
Vous aller choisir votre couple user/password d'administration, puis sélectionner la base de données que vous allez utiliser. Dans notre cas, nous choisirons postgresql.
On va ensuite remplir les champs indiquant les informations sur notre base de données. Pour nous, il s'agit des étapes effectuées lors de l'étape Configurer sa base de données, à savoir le nom de la base et le couple user/password.
On active également l'option d'installation des applications par défaut.
Si on valide l'installation, on devrait arriver sur l'interface d'accueil du serveur ce qui signifie qu'il est prêt à être utilisé.
Maintenant que notre serveur nextcloud est configuré. On peut observer que des ralentissements peuvent survenir lors du chargement de certaines pages.
Il pourrait donc être intéressant d'installer un système de cache afin de ne pas avoir de problèmes de chargement.
Deux options s'offrent à nous, le serveur de cache directement sur notre serveur nextcloud ou alors sur un autre serveur en version distribuée.
Nous allons aborder l'installation sur le même serveur et utiliser les deux outils suivants:
- APCu: Gère un cache local du système.
- Redis: Gère le cache en mode local ou distribué, prend également en charge les transactions sur les fichiers.
Nous devons d'adbord installer le paquets php-apcu et redémarrer le service web :
sudo apt install php-apcu && sudo service apache2 restart
Nous pouvons alors activer le service apcu dans le fichier config.php situé dans /var/www/nextcloud/config/config.php en ajoutant dans le tableau de config la ligne :
'memcache.local' => '\\OC\\Memcache\\APCu',APCu est desactivé par défaut en CLI. Il nous faut vérifier que la variable
apc.enable_cliest mis à1dansphp.ini, ajouter cette ligne dans le fichier/etc/php/8.0(version de php)/apache2/php.ini:apc.enable_cli = 1
