Bonjour
J'ai fini l'installation de mon serveur Nextcloud sous Leap 15.1
J'ai utilisé la version d'origine de PHP : PHP 7.2.5 puis j'ai vu une alerte de sécurité sur le forum de Nextcloud recommandant de mettre à jour vers PHP7.2.24 ou 7.3.11
Tant qu'à faire, j'ai voulu passer en 7.3 qui a eu durée de vie plus longue mais j'ai quelques soucis que voici.
Tout d'abord, j'ai ajouté le dépôt : home:illuusio:php-next
Puis j'ai lancé la mise à jour de PHP7 sous YAST. J'ai alors plein de mise à jour de modules complémentaires (7.2.5 vers 7.3.11).
Le redémarrage du service php-fpm se passe sans erreur dans la console (sudo systemctl restart php-fpm).
J'ai aussi redémarré le serveur nginx sans erreur (sudo systemctl restart nginx).
Par contre, en me connectant à mon serveur nextcloud, j'obtiens un message : Internal server error.
En fouinant un peu dans les logs de nextcloud, je trouve des alertes liées aux modules php7-apcu et php7-imagick.
D'ailleurs, bien qu'il n'y ait pas eu d'erreur au démarrage du service php-fpm, la commande php -v renvoie un message intéressant :
Kris@linux-arpr:~> php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'apcu.so' (tried: /usr/lib64/php7/extensions/apcu.so (/usr/lib64/php7/extensions/apcu.so: undefined symbol: _zval_ptr_dtor), /usr/lib64/php7/extensions/apcu.so.so (/usr/lib64/php7/extensions/apcu.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib64/php7/extensions/imagick.so (/usr/lib64/php7/extensions/imagick.so: undefined symbol: _zval_ptr_dtor), /usr/lib64/php7/extensions/imagick.so.so (/usr/lib64/php7/extensions/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.3.11 (cli) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
En regardant les mises à jour, il semble effectivement que les modules php7-apcu et php7-imagick n'aient pas été mis à jour. J'ai essayé de les mettre à jour spécifiquement en cherchant dans les dépots communautaires mais cela n'a rien changé.
Est-ce que quelqu'un a déjà essayé de mettre à jour Leap 15.1 avec PHP7.3.1 ?
Pour info, j'ai finalement mis à jour en 7.2.24 grâce au dépot : home:ecsos:server:Sabre et c'est passé comme une lettre à la poste. 8)
Par contre, j'ai l'application Passwords de Nextcloud qui ne supportera plus PHP7.2 en début 2020 et je reste fortement intéressé par passer en 7.3
Merci pour votre aide!
Bonsoir,
Plutôt que des dépôts "home", je te recommande plus l'usage de https://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_15.1/
Tu pourras installer ton php en 7.3:
- supprime les autres dépôts
- supprime tous les paquets php installés:
zypper rm -u php*
- ajoute le dépôt:
- installe ton php et les bibliothèques dont tu as besoin
Bonsoir sogal.
Merci une nouvelle fois pour ton aide.
Je viens de faire ce que tu conseilles mais j'ai toujours les mêmes problèmes avec php7-apcu et php7-imagick.
php -v renvoie les mêmes erreurs.
As-tu déjà vu cela ?
Merci.
Et si tu forces les mises à jour des libs PHP depuis ce dépôt ?
zypper dup --from php-devel
(où php-devel est le nom du dépôt php ajouté précédemment)
Dans le message d'erreur il dit qu'il ne peut pas trouver les fichiers. Sont-ils bel et bien présents ?
Re-
tu as mis le doigt sur quelque chose. Voici le retour de la commande pour forcer la mise à jour depuis le dépôt php-devel (zypper dup --from php-devel):
Chargement des données du dépôt...
Lecture des paquets installés...
Calcul de la mise à niveau de la distribution...
Problème : problème avec le paquet installé php7-test-7.2.5-lp151.6.13.1.x86_64
Solution 1 : installer php7-test-7.3.11-lp151.223.1.x86_64 (avec changement de fournisseur)
openSUSE --> obs://build.opensuse.org/devel:languages:php
Solution 2 : conserver php7-test-7.2.5-lp151.6.13.1.x86_64 obsolète
Choisir une des solutions ci-dessus en tapant son numéro ou bien annuler en tapant 'a' [1/2/a/d/?] (a): Résolution des dépendances...
Calcul de la mise à niveau de la distribution...
Problème : php7-imagick-3.4.3-lp151.7.1.x86_64 requiert php(api) = 20170718, mais cette dépendance ne peut pas être fournie
fournisseurs non installables : php7-7.2.5-lp151.5.44.x86_64[repo-oss]
php7-7.2.5-lp151.6.12.1.i586[repo-update]
php7-7.2.5-lp151.6.12.1.x86_64[repo-update]
php7-7.2.5-lp151.6.13.1.i586[repo-update]
php7-7.2.5-lp151.6.13.1.x86_64[repo-update]
php7-7.2.5-lp151.6.3.1.i586[repo-update]
php7-7.2.5-lp151.6.3.1.x86_64[repo-update]
php7-7.2.5-lp151.6.6.1.i586[repo-update]
php7-7.2.5-lp151.6.6.1.x86_64[repo-update]
php7-7.2.5-lp151.6.9.1.i586[repo-update]
php7-7.2.5-lp151.6.9.1.x86_64[repo-update]
php7-test-7.2.5-lp151.6.12.1.i586[repo-update]
php7-test-7.2.5-lp151.6.12.1.x86_64[repo-update]
Solution 1 : Les actions suivantes seront exécutées :
installer php7-7.2.5-lp151.6.13.1.x86_64 depuis le dépôt exclu
installer php7-zlib-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-zip-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-xmlwriter-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-xmlreader-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-tokenizer-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-sqlite-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-posix-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-pdo-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-pcntl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-openssl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-opcache-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-mysql-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-mbstring-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-ldap-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-json-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-intl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-iconv-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-gmp-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-gd-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-fpm-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-fileinfo-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-exif-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-dom-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-curl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-ctype-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-bz2-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
Solution 2 : Les actions suivantes seront exécutées :
désinstallation de php7-imagick-3.4.3-lp151.7.1.x86_64
désinstallation de php7-APCu-5.1.11-lp151.2.3.x86_64
Solution 3 : ne pas installer php7-test-7.3.11-lp151.223.1.x86_64
Solution 4 : casser php7-imagick-3.4.3-lp151.7.1.x86_64 en ignorant certaines de ses dépendances
Choisir une des solutions ci-dessus en tapant son numéro ou bien annuler en tapant 'a' [1/2/3/4/a/d/?] (a): Résolution des dépendances...
Calcul de la mise à niveau de la distribution...
Problème : php7-APCu-5.1.11-lp151.2.3.x86_64 requiert php(api) = 20170718, mais cette dépendance ne peut pas être fournie
fournisseurs non installables : php7-7.2.5-lp151.5.44.x86_64[repo-oss]
php7-7.2.5-lp151.6.12.1.i586[repo-update]
php7-7.2.5-lp151.6.12.1.x86_64[repo-update]
php7-7.2.5-lp151.6.13.1.i586[repo-update]
php7-7.2.5-lp151.6.13.1.x86_64[repo-update]
php7-7.2.5-lp151.6.3.1.i586[repo-update]
php7-7.2.5-lp151.6.3.1.x86_64[repo-update]
php7-7.2.5-lp151.6.6.1.i586[repo-update]
php7-7.2.5-lp151.6.6.1.x86_64[repo-update]
php7-7.2.5-lp151.6.9.1.i586[repo-update]
php7-7.2.5-lp151.6.9.1.x86_64[repo-update]
php7-test-7.2.5-lp151.6.12.1.i586[repo-update]
php7-test-7.2.5-lp151.6.12.1.x86_64[repo-update]
Solution 1 : Les actions suivantes seront exécutées :
installer php7-7.2.5-lp151.6.13.1.x86_64 depuis le dépôt exclu
installer php7-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-zlib-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-zip-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-xmlwriter-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-xmlreader-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-tokenizer-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-sqlite-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-posix-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-pdo-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-pcntl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-openssl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-opcache-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-mysql-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-mbstring-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-ldap-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-json-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-intl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-iconv-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-gmp-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-gd-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-fpm-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-fileinfo-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-exif-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-dom-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-curl-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-ctype-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
installer php7-bz2-7.2.5-lp151.6.13.1.x86_64 (avec changement de fournisseur)
obs://build.opensuse.org/devel:languages:php --> openSUSE
Solution 2 : désinstallation de php7-APCu-5.1.11-lp151.2.3.x86_64
Solution 3 : ne pas installer php7-test-7.3.11-lp151.223.1.x86_64
Solution 4 : casser php7-APCu-5.1.11-lp151.2.3.x86_64 en ignorant certaines de ses dépendances
Choisir une des solutions ci-dessus en tapant son numéro ou bien annuler en tapant 'a' [1/2/3/4/a/d/?] (a): Résolution des dépendances...
Calcul de la mise à niveau de la distribution...
Le paquet suivant va être mis à jour :
php7-test
Le paquet suivant va changer de fournisseur :
php7-test
openSUSE -> obs://build.opensuse.org/devel:languages:php
1 paquet à mettre à jour, 1 à changer de fournisseur.
Taille de téléchargement totale : 328,9 KiB. Déjà en cache : 0 B. Après l'opération, 97,2 KiB d'espace disque supplémentaire sera utilisé.
Continuer ? [o/n/v/...? affiche toutes les options] (o): Récupération de paquet php7-test-7.3.11-lp151.223.1.x86_64 (1/1), 328,9 KiB ( 2,6 MiB décompressé)
Récupération : php7-test-7.3.11-lp151.223.1.x86_64.rpm [fait]
Recherche de conflits de fichiers : [...fait]
(1/1) Installation de : php7-test-7.3.11-lp151.223.1.x86_64 [...........fait]
php7-apcu et php7-imagick finissent par poser un problème de dépendance : ils requièrent php(api) = 20170718, mais cette dépendance ne peut pas être fournie...
Pour continuer l'installation, je n'ai eu d'autre choix que de casser ces dépendances (enfin, je crois). Mais au final, php -v renvoie les mêmes erreurs (Unable to load dynamic library 'apcu.so' and 'imagick.so').
Les fichiers /usr/lib64/php7/extensions/apcu.so (et imagick.so) existent bien.
Cela se corse.. ??
Ces extensions sont construites à part, ajoute le dépôt:
https://download.opensuse.org/repositories/server:/php:/extensions:/php7/openSUSE_Leap_15.1/
et installe ces 2 extensions depuis ce dernier. Ce devrait régler le soucis, sinon je ne vois pas :)
Merci. J'ai ajouté ce dépôt mais j'ai toujours le même problème :'(
php -v me renvoie les erreurs par rapport aux modules apcu et imagick
zypper dup pour les 2 nouveaux dépôts n'aboutit pas car requiert php(api) = 20170718
D'ailleurs, c'est quoi ce php(api) 20170718 ?? >:(
D'autres idées de quelqu'un ? (ne te décourage pas sogal ! :)) )
Me revoilà ;D
En fait, sogal avait la solution mais j'ai dû mal m'y prendre.
Voilà ce qui a fonctionné :
zypper rm -u php*
zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_15.1/ php-devel
zypper addrepo https://download.opensuse.org/repositories/server:php:extensions:php7/php7_openSUSE_Leap_15.1/server:php:extensions:php7.repo
zypper in php7 php7-APCu php7-bz2 php7-ctype php7-curl php7-dom php7-exif php7-fileinfo php7-fpm php7-gd php7-gmp php7-iconv php7-imagick php7-intl php7-json php7-ldap php7-mbstring php7-mysql php7-opcache php7-openssl php7-pcntl php7-pdo php7-posix php7-tokenizer php7-xmlreader php7-xmlwriter php7-zip php7-zlib
Attention de bien sauvegarder ses fichiers de configuration PHP. Dans la manœuvre, le fichier /etc/php7/cli/php.ini a été remplacé par un nouveau.
Et me voici donc avec un serveur NEXTCLOUD en PHP7.3.11 ! 8)
MERCI SOGAL
A+
PS : si je veux garder NGINX et MARIADB à jour, quelqu'un aurait-il un suggestion de dépôts comme ceux de "devel" ci-dessus ?
Salut,
Très bien tout ça.
Pour Nginx et MariaDB je doute que ce soit vraiment nécessaire dans la mesure où ta Leap 15.1 reçoit régulièrement des mises à jour de sécurité. Tu n'auras peut-être pas la toute dernière version (mais est-ce un besoin réel pour faire fonctionner Nextcloud ? pour en administrer plusieurs je sais que non :) ) mais la version que tu as sera à jour en terme de sécurité.
Merci sogal pour tes conseils avisés.
Je laisse donc NGINX et MARIADB tranquille.
À bientôt