Passer au contenu principal

Configuration Nextcloud

Configuration de la Machine Virtuelle
Ubuntu 21.04
2vCPU
2Go de RAM
300 Go de disque

Activer les dépôt PHP 8.0
apt install ca-certificates apt-transport-https software-properties-common
add-apt-repository ppa:ondrej/php
Supprimer Snapd
apt remove --purge snapd

Installation des pré-requis

apt install apache2 mariadb-server php8.0-fpm
apt install php8.0-fpm php8.0-common php8.0-imagick php8.0-mbstring php8.0-xmlrpc php8.0-soap php8.0-gd php8.0-mysql php8.0-xml php8.0-intl php8.0-mysql php8.0-cli php8.0-ldap php8.0-zip php8.0-curl php8.0-apcu php8.0-cas php8.0-bz2 php8.0-imap php8.0-tidy php8.0-bcmath php8.0-gmp
apt install libmagickcore-6.q16-6-extra

Configuration MariaDB

Sécurisation de la base de donnée
mysql_secure_installation
Connexion à la base de donnée en tant que root
mysql -u root
Configuration de la base de donnée nextcloud
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Activation modules PHP-FPM et config php

# Activation des modules PHP-CGI
a2enmod proxy_fcgi
a2enconf php8.0-fpm.conf

# Activation des modules HTTPS
a2enmod ssl
a2enmod rewrite
a2enmod headers
a2enmod socache_shmcb

# Relancer le service apache
systemctl restart apache2

 

Configuration de php-fpm

Modifier le fichier /etc/php/8.0/fpm/php.ini
Modifiez la quantité de mémoire autorisé pour un script (memory_limit)
Modifiez le fuseau horaire (timezone) en Europe/Paris

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Paris

; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 512M

Enfin Rechargez php8.0-fpm

systemctl restart php8.0-fpm.service

Configuration Apache

Créer le fichier de configuration /etc/apache2/sites-available/nextcloud.conf

<VirtualHost *:80>
# Racine Web
DocumentRoot /var/www/nextcloud

# Bloc configuration Application
   <Directory /var/www/nextcloud>
        Options ExecCGI FollowSymlinks MultiViews
        AllowOverride All
        Require all granted
        <IfModule mod_dav.c>
        Dav off
        </IfModule>
   </Directory>

# Emplacements des logs
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activez la configuration nextcloud
a2ensite nextcloud.conf

Installation des fichiers Nextcloud

Téléchargement du zip:
wget https://download.nextcloud.com/server/releases/nextcloud-22.0.0.zip
Décompression de l'archive vers /var/www
unzip nextcloud-22.0.0.zip -o /var/www/
Attribution des droits au serveur web
chown -R www-data:www-data /var/www/nextcloud

Naviguer sur votre serveur web pour procéder à l'installation de base

image-1626254213915.png

Configuration Nextcloud

Fichier de configuration

Il est ou le fichier de config ?
/var/www/nextcloud/config/config.php

<?php
$CONFIG = array (
  'instanceid' => 'id_instance',
  'passwordsalt' => 'mot_de_passe_salé'Mot_De_Passe_Salé',
  'secret' => 'Secret',
  'trusted_domains' =>
  array (
    0 => 'cloud.lgarre.fr',
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '22.0.0.11',
  'overwrite.cli.url' => 'https://cloud.lgarre.fr',
  // Config modifié
  'overwriteprotocol' => 'https',
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'default_phone_region' => 'FR',
  // fin de modification de la config
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'nextcloud'Mot_De_Passe_DB',
  'installed' => true,
'updater.secret' => 'secret_updater',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'updater.release.channel' => 'beta',
);

 

Réécriture des lien pour supprimer index.php dans l'URL

liens 

Seul l'élu peut faire des modifications !
Les commandes OCC doivent IMPERATIVEMENT être exécutée en tant que www-data pour s'assurer que les droits soient correct

Cette commande va forcer à réécrire les liens URL pour supprimer index.php

sudo -u www-data php occ maintenance:update:htaccess
Taches planifié

Ajouter une tâche planifiée au compte du serveur web (www-data)

crontab -u www-data -e

L'éditeur de votre choix s'ouvre, ajouter la ligne suivante

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Dans les paramètre de NextCloud sélectionnez Cron en tant que gestionnaire des tâches de fond

image-1626255057986.png