Configuration Nextcloud
Configuration de la Machine Virtuelle
Ubuntu 21.04
2vCPU
2Go de RAM
300 Go de disque
Activer les dépôt PHP récents sous Ubuntu
apt install ca-certificates apt-transport-https software-properties-common
add-apt-repository ppa:ondrej/php
Activer les dépôt PHP récents sous Debian
apt install ca-certificates apt-transport-https lsb-release
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
Supprimer Snapd
apt remove --purge snapd
Installation des prérequis
apt install apache2 mariadb-server php8.0-fpm redis-server
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 php8.0-redis
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-24.0.0.zip
Décompression de l'archive vers /var/www
unzip nextcloud-24.0.0.zip -o /var/www/
Attribution des droits au serveur web
chown -R www-data:www-data /var/www/nextcloud
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é',
'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',
// Début Config modifié
'overwriteprotocol' => 'https',
'htaccess.RewriteBase' => '/',
'default_phone_region' => 'FR',
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
// fin de modification de la config
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => 'Mot_De_Passe_DB',
'installed' => true,
);
Réécriture des 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

