[Résolu] De Jessie à Stretch, de php5 à php7 : ça bloque

php
Tags: #<Tag:0x00007f092b9065b0>

#1

Bonjour,
J’ai un serveur qui était sous Jessie et qui me sert surtout à héberger un nextcloud familial. Je me suis décidée à passer à Stretch (il était temps) et j’ai aussi voulu passer à php7.

Comme le nextcloud est plein de beaucoup de bazar… j’ai fait mon backup mais je n’ai pas vraiment envie de tout renvoyer depuis derrière mon adsl de base, si bien que j’ai fait un apt dist-upgrade et pas une réinstallation de tout le système.

La mise à jour du système lui-même s’est bien déroulée, mais je rencontre des difficultés sur le passage de php5 à php7. J’ai fait pas mal de manip ces derniers jours, sans trouver comment décoincer les choses. En gros : si php5 et php7 sont tous les deux sur le serveur, les diverses applications web marchent bien mais dès que je vire php5, tout se casse la figure. Donc visiblement ça reste bloqué en php5… Pour nextcloud j’ai tenté une mise à jour (c’était déjà à jour, donc ça n’a rien changé) ; j’ai réinstallé de zéro phpmyadmin. J’ai aussi quelques instances de dokuwiki que je n’ai pas osé trop bidouiller à ce stade.

J’ai tenté de désinstaller tous les paquets de php5 puis reconfigurer ceux de php7 (dpkg-reconfigure), j’ai désactiver le module php5 dans apache et activé celui de php7, mais rien à faire, j’ai des erreurs comme s’il manquait des choses, par exemple phpmyadmin me réclame mysqli : or dans la doc de phpmyadmin, il est sensé se rabattre sur mysql si mysqli n’est pas dispo, et le paquet php7.0-mysql est bien installé, ainsi que mariadb (qui marche) ; quand au paquet php7.0-mysqli, lorsque je tente de l’installer, apt me répond “Note : sélection de « php7.0-mysql » au lieu de « php7.0-mysqli »”

Après avoir désinstallé php5 pour php7 et modifié le module apache en conséquence, puis relancé Apache, j’ai aussi les dokuwiki qui affichent une page vide (pas d’erreur, comme s’il y avait une erreur dans la lecture du php plutôt) ; pourtant, même si je n’ai pas le dernier hotfix, je suis quand même sur la dernière version ; Dokuwiki est compatible avec php7 correctement depuis la version d’avant et tourne bien, en principe.

Là, j’ai vraiment l’impression d’avoir loupé quelque chose sur la façon d’activer php7 et ses modules et de désactiver php5. Le seul sujet que j’ai trouvé en rapport ici ( Probleme Debian9 phpmyadmin ) a été résolu en réinstallant le serveur et ça, j’aimerais vraiment éviter parce que ça va me demander des jours avant d’arriver à tout renvoyer sur le nextcloud. Est-ce que vous avez une idée ?

Je précise que depuis j’ai remis les sources de Jessie, en gardant celles de Stretch, afin de retrouver les paquets de php5 et de faire tourner le site… Au moins ça marche, mais ça ne me plait pas de rester coincée sur une ancienne version alors que toutes les applis passent à php7. Mais comme je ne suis pas la seule à profiter du serveur, faut bien que je redonne accès aux services.

Bref, je suis à l’écoute de toutes vos propositions, n’oubliez pas les trucs les plus basiques, même si je pense les avoir fait, je sais bien que souvent c’est un truc très bête qui bloque tout :wink:


#2

Salut,

j’ai nextcloud 12 je ne sais pas si toi aussi tu as mis à jours ton Nextcloud vers le 12 ? En tous les cas ce dernier fonctionne bien mieux avec PHP7.

Tu devrais finir ta migration, installer les packet de php7 et poster les erreurs ici. Ça doit pas être bien méchant. C’est peut être des erreurs Apache que tu as.


#3

J’ai repris mes bidouilles.

Je me suis rendue compte que j’avais oublié de rebooter après la dist-upgrade. Chose réparée, je ne sais pas si ça joue, mais bon, fallait de toute façon le faire.

J’ai commenté mes sources de jessie, un petit “apt update” et je reprends. J’ai purgé tous les paquets afin que ce soit aussi propre que possible :

sudo apt-get autoremove --purge php5*
sudo apt-get autoremove --purge php7*
sudo apt-get install imagemagick-6-common libapache2-mod-php7.0 php7.0 libmagickcore-6.q16-3 libmagickwand-6.q16-3 php7.0-bz2  php7.0-curl php7.0-gd php7.0-intl php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-pgsql php7.0-phpdbg  php7.0-sqlite3 php7.0-xml php7.0-zip
sudo service apache2 restart 

Là, Nextcloud est accessible et semble fonctionnel à première vue.

Mon “php info” s’affiche bien aussi et me donne la bonne version de php ainsi qu’un certain nombre de fonctions.

Par contre, Dokuwiki est un peu mort (page blanche). Au pire, je réinstallerais Dokuwiki, ce n’est pas le plus complexe ; j’ai testé dans un dossier, si j’installe Dokuwiki, ça marche, c’est juste que les versions déjà installées ne s’affichent pas. Ça peut aussi bien venir d’un plugin qui coince… Est-ce que j’aurais pu oublier un paquet important dans ma liste plus haut ?


#4

quand tu accédes à Dokuwiki et en méme temps aux log du syslog et apache c’est quoi les erreurs ?

tu as installé ?

php7.0-mcrypt libapache2-mod-php7.0

#5

Pour php7.0-mcrypt libapache2-mod-php7.0 : oui :slight_smile:

J’ai trouvé grâce aux erreurs dans le log php, c’était les plugins tag et swiftmail qui coinçaient pour Dokuwiki. J’ai mis le premier à jour et remplacé le second par le plugin dokuwiki smtp et ça marche (pour ceux qui rencontreront un problème similaire).

Tout semble bien tourner à présent, je vais passer en résolu. Merci beaucoup !