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
Vous pouvez aussi vérifier les versions de PHP installer sur votre serveur apache, grâce à la commande :
# ls /etc/apache2/mods-available/php*
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
Nous allons maintenant installer PHP V7.3 ainsi que les dépendances pour notre Nextcloud.
# apt-get install php7.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
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
Maintenant pour vous assurer que l’update de la version de PHP s’est bien passée, faite un
# php -v
Dans Nextcloud si vous allez Paramètres -> Administration -> Vue d’ensemble, les avertissements sur la version de PHP ont dû disparaitre.
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
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.
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
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
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
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
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.
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.
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 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
Lors de la sauvegarde de vos bases, si vous avez l’erreur ci-dessous :
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
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';
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
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.
Bonjour,
Merci pour ce retour. Pour l’instant je n’ai pas réalisé de tutoriel avec la nouvelle version.
Bonne journée.
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 :-)