Grimoire du pro - Section Nextcloud
Serveur virtuel
Hyperviseur : PROXMOX VE 7.2
OS : Ubuntu 20.04LTS
Mémoire : 4Go
Cpu : 1
Serveur physique
OS : Debian 11.1
Mémoire : 32Go
Cpu : AMD FX(tm)-8300 Eight-Core Processor
Disque dur : 3To Adaptec 5405 (4 x 1To WD Black)
Disque dur : 512Go Samsung SSD 850 PRO
Disque dur : 500Go Samsung SSD 850 EVO
sudo apt install apache2 mariadb-server libapache2-mod-php7.4
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 php-imagick php7.4-xml php7.4-zip php7.4-ldap
sudo apt install unzip fail2ban net-tools
sudo a2enmod setenvif rewrite headers env dir mime ssl
sudo a2ensite default-ssl
sudo service apache2 start
Comptes SQL :
Dans ta voûte de mots de passe, ajoute 2 comptes pour SQL et générer leurs mots de passe.
-
root@localhost
-
nextcloud@localhost
Commandes bash :
sudo /etc/init.d/mysql start
sudo mysql -uroot -p
Commandes SQL :
ALTER USER 'root'@'localhost' IDENTIFIED BY ' rootPassword ';
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY ' password ';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
Charger et placer les fichiers de l'application
wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip
unzip nextcloud-23.0.0.zip
sudo cp -r nextcloud /var/www
touch /etc/apache2/sites-available/nextcloud.conf
chown -R www-data:www-data /var/www/nextcloud/
Configurations pour Apache
/etc/apache2/sites-available/000-default.conf :
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud
ErrorLog ${APACHE_LOG_DIR}/nextcloud.error.lo
CustomLog ${APACHE_LOG_DIR}/nextcloud.access.log combined
</VirtualHost>
/etc/apache2/sites-available/nextcloud.conf :
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
Ajouter les lignes en bleu dans les fichiers
/etc/php/7.4/Apache2/php.ini
memory_limit = -1
[opcache]
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
/var/www/nextcloud
/etc/php/7.4/mods-available/apcu.ini
apc.enable_cli=1
Ajuster les valeurs en orange gras selon l'environement
/etc/php/7.4/Apache2/php.ini :
<?php
$CONFIG = array (
'instanceid' => ' *************** ',
'passwordsalt' => ' ******************************************* ',
'secret' => ' ********************************************************************************** ',
'trusted_domains' =>
array (
0 => 'partage.chezlepro.ca',
1 => 'autre.domaine,tld',
2 => '10.10.10.10',
),
'trusted_proxies' =>
array (
0 => ' 10.10.10.10 ',
),
'datadirectory' => '/var/www/nextcloud/data',
'dbtype' => 'mysql',
'version' => '23.0.0.10',
'overwrite.cli.url' => 'https://partage.chezlepro.ca',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => ' ********** ',
'dbpassword' => ' ************************ ',
'installed' => true,
'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
'mail_from_address' => 'nextcloud',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'chezlepro.ca',
'mail_smtphost' => 'mx.chezlepro.ca',
'memcache.local' => '\OC\Memcache\APCu',
'default_phone_region' => 'CA',
);
-
application Nextcloud et sa configuration
-
fichiers de données des utilisateurs
-
base de données SQL
SAUVEGARDE
sudo -u www-data php occ maintenance:mode --on
rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/
mysqldump --single-transaction -h localhost -u root -p[rootPassword] nextcloud > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
sudo -u www-data php occ maintenance:mode --off
RESTAURATION
-
Il est assumé que les comptes existent et que leurs mots de passe sont connus
-
bien sûr tous ces comptes et ces mots de passe ont été sauvegardés dans une voûte
sudo service apache2 stop
sudo rsync -Aax nextcloud-dirbkp/ nextcloud/
sudo mysql -h localhost -u root -p[password] -e "DROP DATABASE nextcloud"
sudo mysql -h localhost -u root -p[password] -e "CREATE DATABASE nextcloud"
sudo mysql -h localhost -u root -p[password] -e "GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'"
"Impossible de synchroniser à cause d'une date de modification invalide"
SOLUTION TROUVÉE (PAS ENCORE TESTÉ)
How to fix the error invalid or negative modification date · nextcloud/desktop Wiki · GitHub
L'intégration LDAP se fait via une extension nommée "LDAP user and group backend" et il suffit de l'activer via l'interface d'administration.
Une fois la liaison établie :
un compte Nextcloud est créé pour chaque entrée d'annuaire retournée par la requête LDAP
pour tous ces comptes, l'autentification des utilisateurs se fait via le service LDAP
Pour récupérer le mot de passe du compte ldap dans le serveur zimbra :
zimbra@mx:~$zmlocalconfig -s zimbra_ldap_password ldap_master_url
zimbra_ldap_password = ********
ldap_master_url = ldap://mx.chezlepro.ca:389
zimbra_ldap_userdn = uid=zimbra,cn=admins,cn=zimbra
Config ldaps:// à faire...