Nextcloud 15 et php7.3

Après avoir fait quelques mise à jour de paquet, je me dis que je vais passer mon nextcloud en version 15, et bam!

370101 DEBUG This version of Nextcloud is not compatible with > PHP 7.2.<br/>You are currently running 7.3.2-3+0~20190208150725.31+stretch~1.gbp0912bd.+ ynh_exit_properly
370102 WARNING !!
370103 DEBUG + local exit_code=255
370103 WARNING   nextcloud's script has encountered an error. Its execution was cancelled.

A priori, nextcloud n’est compatible avec php7.3 qu’à partir de la 15.0.5, et non la 15.0.4

Cependant, la restauration a également plantée et du coup mon nextcloud a disparu:
yunohost backup restore nextcloud-pre-upgrade1 --apps --debug

...j'ai skippé quelques lignes...
204853 DEBUG + useradd --no-create-home --system --user-group nextcloud --shell /usr/sbin/nologin
205458 WARNING useradd: group nextcloud exists - if you want to add this user to that group, use -g.
205560 DEBUG + ynh_die 'Unable to create nextcloud system account'
205562 WARNING Unable to create nextcloud system account
205564 DEBUG + echo 'Unable to create nextcloud system account'
205566 WARNING !!
205568 DEBUG + exit 1
205569 WARNING   nextcloud's script has encountered an error. Its execution was cancelled.
205571 DEBUG + ynh_exit_properly
205572 WARNING !!
205574 DEBUG + local exit_code=1
205575 WARNING 
205577 DEBUG + '[' 1 -eq 0 ']'
205578 DEBUG + trap '' EXIT
205580 DEBUG + set +eu
205583 DEBUG + echo -e '!!\n  nextcloud'\''s script has encountered an error. Its execution was cancelled.\n!!'
205584 DEBUG + type -t ynh_clean_setup
205586 DEBUG + ynh_die
205587 DEBUG + echo ''
205589 DEBUG + exit 1
205795 ERROR Impossible de restaurer l’application « nextcloud »
Traceback (most recent call last):
  File "/usr/lib/moulinette/yunohost/backup.py", line 1302, in _restore_app
    env=env_dict)
  File "/usr/lib/moulinette/yunohost/hook.py", line 390, in hook_exec
    raise YunohostError('hook_exec_failed', path=path)
YunohostError: Échec de l’exécution du script « /tmp/restoreRfzS7j/restore »

Une idée de comment faire?

Apriori il te faut supprimer le groupe nextcloud car il n’a pas pu être supprimé … probablement parce qu’il y’avais d’autres utilisateurs que juste l’user nextcloud dedans …

M’enfin après je t’avoue que si tu as bidouillé la version de php pour utiliser php 7.3, rien ne garanti que tu puisses reinstaller correctement l’app …

Ben, en l’occurence, j’ai rien bidouillé du tout: la mise à jour s’est faite par la mise à jour des paquets de l’interface Yunohost…

Supprimer le groupe a permis de restaurer l’instance, mais oh surprise, il y a effectivement un pb avec php:

root@YunoHost:~ # tail -n 3 /var/log/nginx/aubonalbanais.ovh-error.log
2019/03/06 06:59:01 [crit] 973#973: *7 connect() to unix:/run/php/php7.0-fpm-nextcloud.sock failed (2: No such file or directory) while connecting to upstream, client: 2a01:e34:ee16:5630:19a:dc4e:4698:4851, server: aubonalbanais.ovh, request: "PROPFIND /nextcloud/remote.php/dav/files/nicolas/ HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm-nextcloud.sock:", host: "aubonalbanais.ovh"
2019/03/06 06:59:02 [crit] 973#973: *7 connect() to unix:/run/php/php7.0-fpm-nextcloud.sock failed (2: No such file or directory) while connecting to upstream, client: 2a01:e34:ee16:5630:19a:dc4e:4698:4851, server: aubonalbanais.ovh, request: "GET /nextcloud/ocs/v2.php/apps/notifications/api/v2/notifications?format=json HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm-nextcloud.sock:", host: "aubonalbanais.ovh"
2019/03/06 06:59:31 [crit] 973#973: *7 connect() to unix:/run/php/php7.0-fpm-nextcloud.sock failed (2: No such file or directory) while connecting to upstream, client: 2a01:e34:ee16:5630:19a:dc4e:4698:4851, server: aubonalbanais.ovh, request: "PROPFIND /nextcloud/remote.php/dav/files/nicolas/ HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm-nextcloud.sock:", host: "aubonalbanais.ovh"
root@YunoHost:/var/log/nginx # la /run/php/*
-rw-r--r-- 1 root     root     4 mars   6 06:43 /run/php/php7.0-fpm.pid
srw-rw---- 1 www-data www-data 0 mars   6 06:43 /run/php/php7.0-fpm.sock
-rw-r--r-- 1 root     root     5 mars   5 23:15 /run/php/php7.2-fpm.pid
srw-rw---- 1 www-data www-data 0 mars   5 23:15 /run/php/php7.2-fpm-pilea.sock
srw-rw---- 1 www-data www-data 0 mars   5 23:15 /run/php/php7.2-fpm.sock
-rw-r--r-- 1 root     root     5 mars   5 23:04 /run/php/php7.3-fpm.pid
srw-rw---- 1 www-data www-data 0 mars   5 23:04 /run/php/php7.3-fpm.sock

J’ai redémarré les services, mais comment réactiver php7.0-fpm-nextcloud.sock?

Pour comprendre on aurais besoin de savoir quelles sont les apps présentent sur ton système et aussi ce que contient /etc/apt/sources.list et /etc/apt/sources.list.d/

yunohost app list -i | grep id
cat /etc/apt/sources.list
cat /etc/apt/sources.list.d/*

En fait c’est bon plus besoin. D’après le log au dessus tu as installé pilea qui fait des choses pas toptop.

Ok, si je comprends bien, la dernière mise à jour m’a rajouté un nouveau dépot qui a des versions plus récentes de php que le standard… Ce qui a cassé ma mise à jour…
Je vais ouvrir une issue chez pilea pour éviter que le pb arrive à d’autre :slight_smile:

Je vais essayer de désintaller tous ces paquets de php7.3 et virer ce nouveau dépot.
Je ne maitrise pas du tout ces réglages php-fpm, comment faire pour remettre php7.0-fpm-nextcloud.sock ?

Alors, si ça intéresse quelqu’un je suis back online suite aux manipulations suivantes:
Edition de /etc/php/7.0/fpm/pool.d/nextcloud.conf pour y mettre à la place de /var/run/php5-fpm.nextcloud.sock

listen = /run/php/php7.0-fpm-nextcloud.sock

Désinstallation de php7.3

apt remove php7.3*

Réinstallation du module zip pour php (mais pourquoi avait-il disparu alors qu’il est là sur la 7.2??)

apt install php7.0-zip

Edition de /etc/apt/source.list.d/php7.list (fichier rajouté par pilea) pour commenter le dépot puis rafraichissement des dépots pour éviter de réinstaller des trucs trop récents

nano /etc/apt/sources.list.d/php7.list 
apt update

Et on redémarre les services:

systemctl restart php7.0-fpm.service

Et voilà! J’ai mon nextcloud 13.0.6 back online (et encore 3 versions différentes de php installées sur mon serveur, la 5, la 7.0 et la 7.2, mais c’est un autre problème…).
Je vais maintenant retenter la migration.
Merci pour vos conseils

1 Like

Bon,
C’est pas gagné cette histoire, et je veux bien un peu d’aide…
J’ai plusieurs soucis restant liés à php (il doit rester des morceaux du 7.3…) mais celui là me bloque la mise à jours:
Dans le script d’upgrade, lors de la réactivation de l’application user_ldap, le système me sort cette erreur:

App "LDAP user and group backend" cannot be installed because the following dependencies are not fulfilled: The library ldap is not available.

pourtant, elle semble bien fonctionner quand je suis en 13.0.6

Il doit te manquer le paquet php-ldap.

Déjà essayé, tu penses bien:

root@YunoHost:/etc/php/7.0/fpm # apt install php-ldap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
php-ldap is already the newest version (1:7.0+49).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@YunoHost:/etc/php/7.0/fpm # apt install php7.0-ldap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
php7.0-ldap is already the newest version (7.0.33-1+0~20181208203126.8+stretch~1.gbp2ff763).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@YunoHost:/etc/php/7.0/fpm # apt install --reinstall php-ldap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 1 réinstallés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/5 048 o dans les archives.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
(Lecture de la base de données... 67985 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../php-ldap_1%3a7.0+49_all.deb ...
Dépaquetage de php-ldap (1:7.0+49) sur (1:7.0+49) ...
Paramétrage de php-ldap (1:7.0+49) ...
root@YunoHost:/etc/php/7.0/fpm # occ app:enable user_ldap

                                                                                                                                                  
  [Exception]                                                                                                                                     
  App "LDAP user and group backend" cannot be installed because the following dependencies are not fulfilled: The library ldap is not available.  
                                                                                                                                                  

app:enable [-g|--groups GROUPS] [--] <app-id>

Mais j’ai effectivement oublier de le préciser dans mon post :slight_smile:

Alors il semblerait que par défaut ce ne soit pas la bonne version de PHP qui soit utilisée en ligne de commande… que dit php -v ?

1 Like

bingo!

root@YunoHost:~ # php -v
PHP 7.2.15-1+0~20190209065123.16+stretch~1.gbp3ad8c0 (cli) (built: Feb  9 2019 06:51:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.15-1+0~20190209065123.16+stretch~1.gbp3ad8c0, Copyright (c) 1999-2018, by Zend Technologies
root@YunoHost:~ # sudo -u nextcloud php7.0 /var/www/nextcloud/occ app:enable user_ldap
user_ldap enabled

Bon, je crois que je vais carrément désinstaller la 7.2, ça m’évitera des soucis

Merci @JimboJoe

1 Like