Mes conseils pour la mise à jour de Nextcloud, PHP et Mariadb.

Les futures versions de Nextcloud, à partir de la V21, ne supporteront que les versions de PHP >=7.3. Voici mes conseils pour la mise à jour de Nextcloud et créer votre cloud personnel. Dans cet exemple nous allons voir comment migrer une version de PHP V7.2 vers la V7.3 puis ensuite passer en V20. Sans oublier la migration de Mariadb en V10.2, pour notre infrastructure Ubuntu – Apache – Nextcloud.

Mise à jour PHP V7.2 vers V7.3

Pour connaitre la version de PHP utilisée, vous pouvez saisir la commande suivante :

# php -v

Mise à jour PHP V7.2 vers V7.3

Vous pouvez aussi vérifier les versions de PHP  installer sur votre serveur apache, grâce à la commande :

# ls /etc/apache2/mods-available/php*

Mise à jour PHP V7.2 vers V7.3

Pour installer la nouvelle version de PHP, nous allons utiliser les dépôts du célèbre Ondřej Surý.

# add-apt-repository ppa:ondrej/php
# apt-get update

Mise à jour PHP V7.2 vers V7.3

Nous allons maintenant installer PHP V7.3 ainsi que les dépendances pour notre Nextcloud.

# apt-get install php7.3

Mise à jour PHP V7.2 vers V7.3

# apt-get install php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-mysql php7.3-mbstring php7.3-mcrypt php7.3-zip php7.3-fpm

Mise à jour PHP V7.2 vers V7.3

Pour que la nouvelle version de PHP soit prise en compte dans notre serveur web Apache, nous devons exécuter les commandes suivantes :

a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm
systemctl reload apache2

Mise à jour PHP V7.2 vers V7.3

Maintenant pour vous assurer que l’update de la version de PHP s’est bien passée, faite un

# php -v

Mise à jour PHP V7.2 vers V7.3

Dans Nextcloud si vous allez Paramètres -> Administration -> Vue d’ensemble, les avertissements sur la version de PHP ont dû disparaitre.

Réparer l'erreur de version PHP dans Nextcloud

Résoudre l’erreur 500 sur Nextcloud suite à la MAJ de version PHP

Résoudre l’erreur 500 sur Nextcloud suite à la MAJ de version PHP.

Si vous avez l’erreur 500 au chargement de Nextcloud après la mise à jour de PHP en 7.3, voici comment je m’en suis sortie. Attention, c’est radical.

/* Suppression des versions de PHP sur le serveur */
# apt-get purge 'php*'

/* Installation de PHP 7.3 et ses principaux modules */
# apt install -y php7.3 php7.3-cli libapache2-mod-php7.3
# apt install -y php-imagick php-gettext php-memcache php-apcu php-pear php-xml php-xmlrpc
# apt install -y php-memcached php-mysql php-intl php-mbstring php-curl php-gd php-imagick
# apt install -y php7.3-common php7.3-mysql php7.3-cgi
# apt install -y php7.3-curl php7.3-zip php7.3-mbstring php7.3-xmlrpc php7.3-gd php7.3-xml php7.3-xsl
# apt install -y php7.3-dev php7.3-bz2 php7.3-intl php7.3-json php7.3-opcache php7.3-readline
# apt install -y php7.3-imap php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-bcmath

/*Mise à jour de la version PHP d'Apache*/
# a2dismod php7.2 (indiquer ici le numéro de version en cours d’utilisation)
# a2enmod php7.3
# systemctl restart apache2.service

/* Mise à jour de la version CLI PHP */
update-alternatives --set php /usr/bin/php7.3

Résoudre l’erreur 500 sur Nextcloud suite à la MAJ de version PHP

Normalement à la fin des commandes ci-dessus, vous devriez retrouver la mire de login à votre application Nextcloud. Ouf !!!

Mes conseils pour la mise à jour de Nextcloud pour résoudre les avertissements de sécurité

 Afin de garder un système performant, je vous engage à regarder régulièrement les avertissements de configuration de Nextcloud.  Vous les trouverez dans Paramètres -> Administration -> Vue d’ensemble.

Voici tous les avertissements que j’ai sur mon instance Nextcloud et que nous allons essayer de résoudre.

Mes conseils pour la mise à jour de Nextcloud et résoudre les avertissements de sécurité

Effectivement à chaque upgrade de PHP, le fichier .ini de configuration de PHP change. Pour modifier la limite de mémoire de Nextcloud vous devez modifier les fichiers suivants :

  • /etc/php/7.3/cli/php.ini
  • /etc/php/7.3/apache2/php.ini

Les 2 valeurs à modifier sont (pour ma configuration j’ai mis 1G) :

  • Memory_limit = 1G
  • upload_max_filesize = 1G

Nous avons quelques index manquants dans notre base de données. La solution proposée est d’exécuter des commandes occ. Voici le formalisme un peu particulier pour exécuter des commandes occ dans Nextcloud  (l’exécution des commandes doit se faire avec l’utilisateur www-data):

# sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices

Résoudre l'erreur des indexs manquants dans la base de données Nextcloud

Certaines colonnes sont manquantes dans la base de données, la commande occ à passer pour résoudre ce problème est :

# sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-columns

Résoudre le problème de colonnes manquantes dans la base de données Nextcloud

Il nous manque deux modules PHP, intl et gmp qui permettent d’améliorer la compatibilité et la performance de notre instance Nextcloud. Pour ajouter ces deux modules, il faut passer les commandes suivantes :

# apt-get install php7.3-intl# apt-get install php7.3-gmp# service apache2 restart

Installation des modules PHP : intl et gmp sur votre instance Nextcloud

Enfin il reste des colonnes dans notre base de données Nextcloud qui n’ont pas été converties au format big int. Pour résoudre ce problème il faut utiliser la commande occ suivante (cela peut prendre du temps en fonction de la taille de votre base de données) :

# sudo -u www-data php /var/www/html/nextcloud/occ db:convert-filecache-bigint

Convertir des colonnes de la base de données Nextcloud au format BIG INT

Et voilà notre instance Nextcloud est maintenant optimisée et opérationnelle. Je vous conseille de regarder de temps en temps les avertissements dans la partie administration, notamment après une mise à jour de l’application Nextcloud ou d’un élément du serveur.

Résoudre les avertissements de sécurité de Nextcloud

 

 

 

 

 

Mise à jour de Nextcloud en V2xx

Pour mettre à jour Nextcloud en suivant mes conseils, il suffit d’aller dans Paramètres -> Administration -> Vue d’ensemble -> Version. Vous pouvez suivre ce guide : Mettre à jour Nextcloud

Après la mise à jour, il faut consulter les avertissements et les résoudre.

Mise à jour de Nextcloud en V2xx

Nous reprenons les commandes occ qui nous sont indiquées dans les avertissements :

# sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices
# sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-primary-keys
# sudo -u www-data php /var/www/html/nextcloud/occ db:convert-filecache-bigint

Mise à jour de Nextcloud en V2xx

Mise à jour de MariadB 10.1 vers 10.2 sous Ubuntu

Si vous suivez mes conseils pour la mise à jour de Nextcloud : Une des règles d’or des administrateurs système et réseau est de ne jamais oublier de faire une sauvegarde lorsque vous manipulez les paramètres systèmes d’un serveur ou les versions des bases de données. Alors, commençons par le commencement.

Sauvegardez toutes les bases de données sur votre serveur :

# mysqldump --all-databases -p > \root\db-backup.sql

Backup de la base de données de Nextcloud

Lors de la sauvegarde de vos bases, si vous avez l’erreur ci-dessous :

Backup de la base de données de Nextcloud

Alors vous devez éditer le fichier /etc/mysql/my.cnf et commentez les 4 options suivantes :

#innodb_large_prefix=1
#innodb_large_prefix=true
#innodb_file_per_table=true
#innodb_file_format=barracuda

Erreur lors de la sauvegarde de la base de données de Nextcloud

Avant de continuer, assurez-vous de vérifier le fichier et de voir qu’il contient bien les instructions SQL. Vous pouvez le faire avec la commande cat.

# cat db-backup.sql

Avant d’arrêter, mettez « innodb_fast_shutdown » à 0. Vous pouvez le faire grâce à une requête.

J’ai d’abord vérifié la valeur précédente :

# mariadb
# show variables like 'innodb_fast_shutdown';

Astuce mise à jour de MariadB 10.1 vers 10.2 sous Ubuntu

Mettre à jour la valeur (cette méthode ne permet pas de conserver la valeur après le redémarrage) :

# SET GLOBAL innodb_fast_shutdown= 0;

Vérifier si la nouvelle variable a bien la bonne valeur=0, plutôt que 1. Ensuite, arrêter votre base de données.

# service mysql stop

Maintenant voici l’enchainement des commandes pour migrer vers Mariadb 10.2.

apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sh -c "echo 'deb [arch=amd64,i386] https://mirrors.evowise.com/mariadb/repo/10.2/ubuntu '$(lsb_release -cs)' main' > /etc/apt/sources.list.d/MariaDB-10.2.list"
apt-get update
apt-get install mariadb-server
mysql_upgrade
service mysql start

Pour vérifier la version de MariadB, vous pouvez utiliser cette commande :

# mysql -u root -p

Mise à jour de MariadB 10.1 vers 10.2 sous Ubuntu

Vous êtes maintenant sur MariadB V10.2. Et vous n’avez plus d’avertissements dans votre panneau de configuration de Nextcloud. Comme vous pouvez le constater les migrations de PHP, Nextcloud et de MariaDb peventt être très compliquées. Je vous conseille donc avant de vous entrainer sur une instance de validation.

Il faut prévoir une rupture de service lors de la mise à jour de ces composants !!!

Avec mes conseils pour la mise à jour de Nextcloud, votre serveur doit maintenant être à jour et vous allez pouvoir accueillir sereinement les nouvelles versions de Nextcloud sans soucis. Si vous souhaitez sécuriser encore plus votre installation, vous pouvez installer un certificat SSL sur Nextcloud.

Signature Manuelle Guillaume

2 Potins

  1. Bonjour,

    Merci pour ce retour. Pour l’instant je n’ai pas réalisé de tutoriel avec la nouvelle version.

    Bonne journée.

  2. Bonjour,
    je voulais savoir si un tuto pour l’installation de nextcloud à partir de sa dernière version est possible ?
    Comprenant sa sécurisation et optimisation.
    Vos précédent tuto son génial mais basé sur d’ancienne version.
    En vous remerciant par avance :-)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *