Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
informatique:serveur:web-linux-apache:nextcloud [2023/12/13 10:29] – [2.2 Configuration Redis et APCu] Cédric ABONNEL | informatique:serveur:web-linux-apache:nextcloud [2023/12/13 10:33] (Version actuelle) – [2.2 Configuration Redis et APCu] Cédric ABONNEL | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== NextCloud ====== | ||
+ | |||
+ | ===== - Installer NextCloud ===== | ||
+ | |||
+ | ==== - Pré requis ==== | ||
+ | |||
+ | Environnement utilisé lors de la rédaction de ce document | ||
+ | |||
+ | * OS : Linux Debian 10 | ||
+ | * HTTP : Serveur Apache 2.4 | ||
+ | * SGBD : MariaDB | ||
+ | * Langage : PHP 7.4 exécuté en FPM avec Apache | ||
+ | |||
+ | ==== - Modules PHP installés ==== | ||
+ | |||
+ | < | ||
+ | sudo apt install php7.4-fpm php7.4-common | ||
+ | sudo apt install php7.4-gd php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl | ||
+ | sudo apt install php7.4-gmp php7.4-bcmath php7.4-imagick php7.4-xml php7.4-zip | ||
+ | sudo apt install imagemagick | ||
+ | </ | ||
+ | |||
+ | ==== - Configuration PHP ==== | ||
+ | |||
+ | __Mémoire limite__ | ||
+ | |||
+ | Dans la configuration par défaut, la valeur **memory_limit** n'est pas indiquée. Ajouter dans le fichier de configuration PHP FPM ''/ | ||
+ | |||
+ | < | ||
+ | memory_limit = 1G | ||
+ | </ | ||
+ | |||
+ | ==== - Base de données ==== | ||
+ | |||
+ | Il faut créer un utilisateur et une base de données. | ||
+ | |||
+ | Dans cette section on définie : | ||
+ | * password_nextcloud : le mot de passe MariaDb ssociée | ||
+ | |||
+ | **Se connecter à mariaDb** : | ||
+ | < | ||
+ | mysql -uroot -p | ||
+ | </ | ||
+ | |||
+ | <code SQL> | ||
+ | USE mysql; | ||
+ | </ | ||
+ | |||
+ | **Créer la base de données **: | ||
+ | <code SQL> | ||
+ | CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
+ | </ | ||
+ | |||
+ | **Créer le compte de connexion ** et associer les droits sur la base de données : | ||
+ | <code SQL> | ||
+ | GRANT SELECT, | ||
+ | quit; | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== - Configurer Apache 2.4 ===== | ||
+ | |||
+ | |||
+ | Nous allons ajouter un dossier à notre configuration Web actuelle. L' | ||
+ | |||
+ | Éditer le fichier de configuration Apache ''/ | ||
+ | |||
+ | < | ||
+ | Alias /cloud "/ | ||
+ | |||
+ | < | ||
+ | Require all granted | ||
+ | AllowOverride All | ||
+ | Options +FollowSymLinks +MultiViews | ||
+ | MultiviewsMatch Any | ||
+ | |||
+ | < | ||
+ | Dav off | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | a2ensite 100-fr.abonnel.www-cloud.conf | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo a2enmod rewrite | ||
+ | sudo a2enmod headers | ||
+ | sudo a2enmod env | ||
+ | sudo a2enmod dir | ||
+ | sudo a2enmod mime | ||
+ | </ | ||
+ | |||
+ | >> Activer la gestion du SSL | ||
+ | |||
+ | < | ||
+ | sudo a2enmod ssl | ||
+ | sudo a2ensite default-ssl | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo chown -R www-data: | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | Le script est disponible à l' | ||
+ | |||
+ | {{ informatique: | ||
+ | | ||
+ | < | ||
+ | wget https:// | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo tar -xjf nextcloud-18.0.1.tar.bz2 -C / | ||
+ | sudo mv / | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo chown -R www-data: | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | service apache2 restart | ||
+ | </ | ||
+ | |||
+ | >> | ||
+ | |||
+ | Utiliser l'URL qui permet d' | ||
+ | Lors du premier appel, le panneau de configuration initiale s' | ||
+ | |||
+ | ==== - Configuration l' | ||
+ | |||
+ | apt-get install clamav clamav-daemon | ||
+ | |||
+ | |||
+ | ==== - Configuration Redis et APCu ==== | ||
+ | |||
+ | < | ||
+ | sudo apt install redis php7.4-redis php7.4-apcu | ||
+ | sudo apt install redis php8.1-redis php8.1-apcu | ||
+ | sudo apt install redis php8.3-redis php8.3-apcu | ||
+ | </ | ||
+ | |||
+ | Il faut éditer le fichier de configuration NextCloud ''/ | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | </ | ||
+ | |||
+ | Il faut associer le groupe | ||
+ | |||
+ | sudo usermod -a -G redis www-data | ||
+ | |||
+ | Puis redémarrer Apache2 | ||
+ | |||
+ | sudo systemctl restart apache2 | ||
+ | |||
+ | === Activation de memcache === | ||
+ | |||
+ | < | ||
+ | apt install php7.4-memcache | ||
+ | </ | ||
+ | |||
+ | Assurez-vous également que le module Memcache est activé dans votre fichier de configuration PHP. Vous devrez peut-être ajouter ou décommenter la ligne suivante dans les fichiers de configuration : | ||
+ | |||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | |||
+ | Après avoir apporté des modifications, | ||
+ | |||
+ | < | ||
+ | sudo service php7.4-fpm restart | ||
+ | sudo service php8.1-fpm restart | ||
+ | sudo service php8.3-fpm restart | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== - Les options nextCloud ==== | ||
+ | |||
+ | Pour modifier les options il faut éditer le fichier de configuration NextCloud ''/ | ||
+ | |||
+ | Une fois les modification effectuées, | ||
+ | < | ||
+ | sudo -u www-data php / | ||
+ | </ | ||
+ | |||
+ | |||
+ | > Forcer les connexions en https | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | > Mettre par défaut l' | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | > Faire disparaître le index.php de l'URL | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | > Mise à jour en ligne de commande | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | | ||
+ | > Désactiver le mode maintenance | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | | ||
+ | > Mettre à jour toutes les applications | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | ==== - ajouter une tâche cron pour NextCloud ==== | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo crontab -u www-data -e | ||
+ | </ | ||
+ | |||
+ | Dans la configuration, | ||
+ | |||
+ | < | ||
+ | */5 * * * * php -f / | ||
+ | </ | ||
+ | |||
+ | ==== - configurer fail2ban ==== | ||
+ | |||
+ | Créer le fichier ''/ | ||
+ | < | ||
+ | [Definition] | ||
+ | _groupsre = (?: | ||
+ | failregex = ^\{%(_groupsre)s,? | ||
+ | ^\{%(_groupsre)s,? | ||
+ | datepattern = ,? | ||
+ | </ | ||
+ | |||
+ | Le fichier ''/ | ||
+ | < | ||
+ | [nextcloud] | ||
+ | backend = auto | ||
+ | enabled = true | ||
+ | port = 80,443 | ||
+ | protocol = tcp | ||
+ | filter = nextcloud | ||
+ | maxretry = 3 | ||
+ | bantime = 86400 | ||
+ | findtime = 43200 | ||
+ | logpath = / | ||
+ | </ | ||
+ | |||
+ | Redémarrer, | ||
+ | < | ||
+ | sudo systemctl restart fail2ban | ||
+ | sudo systemctl status fail2ban | ||
+ | sudo fail2ban-client status nextcloud | ||
+ | </ | ||
+ | |||
+ | ==== - configurer mysql ==== | ||
+ | |||
+ | Dans le fichier ''/ | ||
+ | < | ||
+ | innodb_buffer_pool_size=1G | ||
+ | innodb_io_capacity=4000 | ||
+ | </ | ||
+ | |||
+ | ==== - configurer php ==== | ||
+ | |||
+ | Dans un fichier de configuration PHP-FPM, par exemple ''/ | ||
+ | |||
+ | < | ||
+ | memory_limit = 1G | ||
+ | |||
+ | pm = dynamic | ||
+ | pm.max_children = 120 | ||
+ | pm.start_servers = 12 | ||
+ | pm.min_spare_servers = 6 | ||
+ | pm.max_spare_servers = 18 | ||
+ | |||
+ | opcache.enable=1 | ||
+ | opcache.interned_strings_buffer=8 | ||
+ | opcache.max_accelerated_files=10000 | ||
+ | opcache.memory_consumption=128 | ||
+ | opcache.save_comments=1 | ||
+ | opcache.revalidate_freq=1 | ||
+ | </ | ||
+ | |||
+ | ==== - Mettre à jour automatiquement NextCloud ==== | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo crontab -u www-data -e | ||
+ | </ | ||
+ | |||
+ | Dans la configuration, | ||
+ | |||
+ | < | ||
+ | 0 3 * * * php / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== - Mettre à jour automatiquement les applications NextCloud ==== | ||
+ | |||
+ | >> | ||
+ | |||
+ | < | ||
+ | sudo crontab -u www-data -e | ||
+ | </ | ||
+ | |||
+ | Dans la configuration, | ||
+ | |||
+ | < | ||
+ | * 10 */1 * * php -f / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== - Maintenance suite aux mises à jour ===== | ||
+ | |||
+ | ==== - Index manquants ==== | ||
+ | |||
+ | La base de données a quelques index manquants. L' | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | ==== - Clés primaires manquantes ==== | ||
+ | |||
+ | Il manque des clés primaires dans la base de données. En raison du fait que l’ajout de clés primaires sur les grandes tables peut prendre un certain temps, elles n’ont pas été ajoutées automatiquement. En exécutant '' | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | ==== - Clés primaires manquantes ==== | ||
+ | |||
+ | Certaines colonnes facultatives sont manquantes dans la base de données. Étant donné qu' | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== - Clés primaires manquantes ==== | ||
+ | |||
+ | Certaines colonnes de la base de données n'ont pas été converties en **big int**. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant '' | ||
+ | |||
+ | < | ||
+ | sudo -u www-data php7.4 / | ||
+ | sudo -u www-data php7.4 / | ||
+ | sudo -u www-data php7.4 / | ||
+ | </ | ||
+ | |||
+ | ===== - Quelques trucs et astuces ===== | ||
+ | |||
+ | ==== - Utilisateur désactivé ==== | ||
+ | |||
+ | |||
+ | Activer un utilisateur qui a été désactivé : | ||
+ | |||
+ | sudo -u www-data php occ user:enable [username] | ||
+ | | ||
+ | |||
+ | ==== - Import d'un VCard en erreur ==== | ||
+ | |||
+ | Convertir un fichier **vcard 2.1** en **vcard 3.0** pour l' | ||
+ | |||
+ | https:// | ||
+ | |||
+ | < | ||
+ | git clone https:// | ||
+ | cd vcard2to3 | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | ==== - Contacts / CardDAV ==== | ||
+ | |||
+ | **Nextcloud** propose un backend **CardDAV** pour que les utilisateurs puissent stocker et partager leurs carnets d' | ||
+ | |||
+ | |||
+ | === Carnet d' | ||
+ | |||
+ | **Modifié dans la version 27 : Le carnet d' | ||
+ | |||
+ | Nextcloud maintient un carnet d' | ||
+ | |||
+ | Les utilisateurs désactivés sont supprimés de ce carnet d' | ||
+ | |||
+ | Vous pouvez désactiver l' | ||
+ | |||
+ | Exécutez la commande '' | ||
+ | |||
+ | === Avertissement === | ||
+ | |||
+ | Si des clients se sont déjà connectés au point de terminaison CalDAV, les clients peuvent rencontrer des problèmes de synchronisation après la désactivation de l' | ||
+ | |||
+ | === Confidentialité et étendue des propriétés de l' | ||
+ | |||
+ | Les informations de contact dans le carnet d' | ||
+ | |||
+ | Les utilisateurs qui définissent toutes leurs étendues de propriétés sur " | ||
+ | |||
+ | Les paramètres de partage de fichiers contrôlent l' | ||
+ | |||
+ | - Si l' | ||
+ | - Si l' | ||
+ | - Si l' | ||
+ | - Si l' | ||
+ | - Si l' | ||
+ | |||
+ | === Synchronisation du carnet d' | ||
+ | |||
+ | Le carnet d' | ||
+ | |||