Gérer plusieurs version de PHP sur un même serveur
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Gérer plusieurs version de PHP sur un même serveur

by
OlivierC30
Created on 2019-01-29 10:30:36 (edited on 2024-09-04 13:12:55) in Hébergements Web

Bonjour,

je pense que la réponse sera négative mais je demande tout de même au cas ou.
J'ai actuellement un hébergement Performance 3 qui contient plusieurs sites qui tournent sur un PHP 5.6.
Pour un nouveau projet j'aurais besoin de passer sur un PHP 7.2. Est il possible de gérer plusieurs versions de PHP sur ce même serveur, ou bien faut il obligatoirement upgrader la totalité du serveur ?

Merci


6 Replies ( Latest reply on 2019-02-14 09:29:27 by
kyodev
)

tu as perdu...
la réponse est positive ;o)

https://docs.ovh.com/fr/hosting/configurer-fichier-ovhconfig/

Youhou !
C'est une bonne nouvelle ça :)

Merci pour la solution kyodev.

Bon en fait j'ai toujours un soucis :(

Le fichier ovhconfig semble bien être pris en compte puisque si je me connecte en SSH php -v me retourne bien un php 7.2.12, en revanche la version de PHP executée par Apache reste toujours en 5.6.38 (d'après le php info).
Est ce qu'il faut que je redémarre apache d'une manière ou d'une autre pour que la nouvelle version soit prise en compte ?

Merci.

tu ne peux redémarrer apache
quel phpInfo?

exemple:
```text
/.ovhconfig (5.6)
/www : phpinfo -> 5.6
/test/.ovhconfig(7.2)
/test: phpinfo -> 7.2
```

J'ai tout simplement mis un fichier avec un phpinfo() à la racine du répertoire de mon sous domaine pour vérifier que la version de PHP était correcte (j'avais un parse error sur un vendor donc je trouvais ça étrange).
Si je me connecte en SSH la version de PHP retournée est bien la 7.2.12 (comme demandé dans le fichier .ovhconfig), j'ai donc pu exécuter composer sans problème (et j'ai naivement cru que mon soucis était réglé).
En revanche le phpInfo (executé par Apache donc ) me retourne une version de PHP en 5.6.38.
J'ai donc bien réussi à modifier ma version de PHP qui s'exécute en CLI, mais pas celle exécutée en module d'Apache.
J'ai la possibilité de modifier la version de PHP utilisée par Apache depuis le .htaccess ?

Merci pour ton aide.

non, je t'ai mis le lien de la donc ovhconfig
je t'ai mis un exemple
c'est valable pour apache, à constater avec phpinfo dans le répertoire courant ou inférieur

le php-cli c'est autre chose.
ta demande portait pour les sites

Désolé pas sur d'avoir compris ta réponse.

Mon besoin est effectivement pour les sites, à la limite si le php-cli reste en 5.6 mais que la version executée par Apache est bien en 7.2 ça me va très bien.

Mais mon soucis est justement que c'est le contraire, le fichier .ovhconfig modifie ma version de PHP CLI, mais pas celle qui sert à faire tourner le site.

Ah c'est bon j'ai compris mon erreur.

J'avais mis le fichier de config à la racine de mon répertoire, mais mon sous domaine pointe sur le répertoire 'public' qui s'y trouve.
Je pensais que cela fonctionnait un peu comme le .htaccess et qu'il prenait par défaut le fichier du niveau supérieur en l'absence de config, mais à priori en déplaçant le fichier de config dans le rep exact cela fonctionne correctement.

Merci.

c'est moi qui ne comprend plus trop, mais bon

c'est la même principe que .htaccess, mon exemple, et le manager Ovh ne gère que le .ovhconfig de la racine, tout en haut

Désolé je n'avais pas vu ta réponse :p
En fait c'est pour héberger une API sous Laravel.
J'avais placé initialement le fichier ovhconfig à la racine de mon répertoire pour mon sous domaine, mais mon sous domaine pointe non pas vers ce répertoire, mais vers le répertoire public qui se trouve à l'intérieur.
En plaçant le fichier ovhconfig dans le répertoire public cela fonctionne, mais si le fichier n'est pas présent il ne semble pas prendre en compte le fichier ovhconfig qui se trouve au niveau supérieur.

> mais si le fichier n'est pas présent il ne semble pas prendre en compte le fichier ovhconfig qui se trouve au niveau supérieur.

si normalement ...
teste avec des phpinfo, on configurant deux versions différentes dans les ovhconfig, tu devrais le constater (j'avais essayé, sans rien à signaler)

Pour le coup je te confirme que non.
J'ai ce fichier .ovhconfig dans mon répertoire /public et dans celui qui se trouve au niveau supérieur :
app.engine=php
app.engine.version=7.2
http.firewall=none
environment=production
container.image=stable

Tant que mon fichier est présent dans le répertoire public ma version de PHP est bien la 7.2.
Si je supprime (ou renomme) le fichier ovhconfig qui se trouve dans public je retombe sur la version par défaut qui est la 5.6.39

Après encore une fois mon sous domaine pointe par défaut sur le répertoire public (et non son parent) donc ceci explique cela je pense.
Le répertoire public étant mon root il ne doit pas aller chercher ce qui se trouve au dessus.

heu... non je ne pense pas
un hébergement par défaut c'est:
```
/.ovhconfig
/www (racine)
```
et cette racine (et toutes les éventuelles autres) est sous le joug du .ovhconfig de la racine de **l'hébergement** sauf .ovhconfig éventuelle dans une racine

autre doc plus précise: https://docs.ovh.com/fr/hosting/configurer-fichier-ovhconfig/