NEXTCLOUD pb update

Dans le .htaccess mettre en commentaires les lignes :

<IfModule mod_php5.c>
  #  php_value upload_max_filesize 511M
  #  php_value post_max_size 511M
  # php_value memory_limit 512M
  # php_value mbstring.func_overload 0
  # php_value always_populate_raw_post_data -1
  # php_value default_charset 'UTF-8'
  # php_value output_buffering 0
  <IfModule mod_env.c>
    SetEnv htaccessWorking true
  </IfModule>
</IfModule>
<IfModule mod_php7.c>
   # php_value upload_max_filesize 511M
   # php_value post_max_size 511M
   # php_value memory_limit 512M
   # php_value mbstring.func_overload 0
   # php_value default_charset 'UTF-8'
   # php_value output_buffering 0
  <IfModule mod_env.c>
    SetEnv htaccessWorking true
  </IfModule>
</IfModule>

<IfModule mod_dir.c>
   # DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
 # Options -Indexes

Dans quelques cas, ajouer au my.cnf ou mariadb.conf.d/50-server.cnf (erreurs oc_addressbooks)

innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=true

NEXTCLOUD après install

MariaDB version >13
my.cnf -> innodb_file_per_table=1
base de données -> CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Dans le répertoire de l'install Nextcloud :
sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
sudo -u www-data php occ maintenance:repair


php.ini
memory_limit = 512M
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

apache.conf
<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
 </IfModule>

a2emod http2 <-- activation de http2 dans Apache

NEXTCLOUD déplacer data

sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --on
mkdir -p /new/path/to/data
cp -a /path/to/data/. /new/path/to/data
chown -R www-data:www-data /new/path/to/data

/path/to/nextcloud/config/config.php  --> 'datadirectory' => '/new/path/to/data',

// Modif contenu de la Table 
oc_storages id='local::/new/path/to/data/' --> id='local::/path/to/data/'

sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --off

//Si tout est bon :
rm -R /path/to/data 

SELECT INTO OUTFILE droits MySQL MariaDB

SELECT customer_id, firstname, surname INTO OUTFILE '/home/exportdata/customers.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM customers;
chown mysql:mysql /home/exportdata/
chmod 777 /home/exportdata/

edit /etc/systemd/system/mysqld.service
ProtectHome=false
systemctl daemon-reload
/etc/init.d/mysql stop
/etc/init.d/mysql start

MLySQL MariaDB copie fichiers

Copie des fichiers du répertoire mysql d’un serveur vers l’autre pour dupliquer toutes les bases
Sur le serveur destination :

/etc/init.d/mysql stop

rsync -avz user@www.monserveur.com:/mysql/ /mysql/

chown -R /mysql/*

mysql_upgrade -uroot -ppassword --force //Si pb de version Mysql ou passage à MariaDB

/etc/init.d/mysql start

Dans certains cas si pb de start

mv /mysql/tc.log /mysql/tc.log.sav 

SSMTP

Pour remplacer sendmail et envoyer des emails depuis le serveur

apt-get install ssmtp

apt-get install mailutils

/etc/ssmtp/ssmtp.conf
pour gmail

mailhub=smtp.gmail.com:587
UseSTARTTLS=Yes
AuthUser={username}
AuthPass={password}
FromLineOverride=YES

Dans Gmail console d’administration
Accédez à Sécurité > Paramètres généraux.
Dans la section Applications moins sécurisées, sélectionnez Accéder aux paramètres relatifs aux applications moins sécurisées.
Dans la fenêtre qui s’ouvre, sélectionnez la case d’option Désactiver l’accès de tous les utilisateurs aux applications moins sécurisées.

autre

mailhub=smtp.mondomaine.com
hostname=mondomaine.com
root=postmaster@mondomaine.com
AuthUser={username}
AuthPass={password}
FromLineOverride=YES

Si certaines appli utilisent sendmail :
ln -s /usr/sbin/ssmtp /usr/sbin/sendmail

voir aussi msmtp