Réponse plus courte.
Pas de panique! Si vous êtes préoccupé par la version PHP utilisée par votre serveur Apache, la sortie de phpinfo()
est toujours celle à laquelle vous devez faire attention. Le module PHP Apache et le binaire de ligne de commande PHP sont deux choses différentes qui n'interfèrent pas entre elles.
En fait, vous pouvez compiler et charger diverses versions PHP que vous souhaitez utiliser avec Apache tant que vous ajustez Apache pour le charger correctement. L'interface de ligne de commande PHP n'entrera jamais en jeu dans le cas d'Apache qui analyse les pages PHP.
La version en ligne de commande de PHP est simplement là pour les tâches spécifiques à la ligne de commande et le module PHP pour Apache ne touchera, n'utilisera ou n'aura jamais besoin de cela.
Réponse plus longue.
Tu dis ça:
Je voulais savoir quelle php
version j'utilise alors j'ai écrit le script standard:
phpinfo();
Ce qui me donne la version PHP 5.6.10 - la version PHP correcte nécessaire pour mon application. Quand j'ai essayé dans le terminal:
php -i or php -v
Il me montre la version PHP 5.3.2 dont je n'ai pas besoin.
La version de PHP disponible depuis la ligne de commande n'a rien à voir avec la version de PHP chargée en tant que module. Ce sont des choses complètement distinctes.
Donc, si vous êtes préoccupé par la version de PHP que votre application Web utilise, si la phpinfo()
version 5.6.10 est affichée et c'est ce que vous voulez / avez besoin, c'est 100% correct.
La version en ligne de commande de PHP est un élément système complètement distinct. Donc, la seule chose qui compte est la sortie de phpinfo()
.
Si pour une raison quelconque vous vouliez utiliser une version différente de PHP avec Apache, tout ce que vous avez à faire est d'installer le module PHP Apache compilé quelque part et d'ajouter - ou d'ajuster - cette ligne dans la configuration Apache de votre système:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
Et ajustez simplement le chemin vers le libphp5.so
- qui est ce qu'Apache utilise pour analyser PHP - puis redémarrez Apache et vous êtes en affaires.
Par exemple, à un moment donné, j'ai dû compiler la version 5.1.6 de PHP à partir des sources (avec le support de la bibliothèque GD) pour une utilisation sur une machine Ubuntu 12.04 exécutant PHP 5.3.5. Dans le fichier de chargement du module PHP du serveur ici:
/etc/apache2/mods-available/php5.load
J'avais des lignes comme ça:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
Remarquez comment une ligne est commentée libphp535.so
et l'autre non commentée libphp516-gd.so
? Ce que j'ai fait, c'est que j'ai renommé le libphp5.so
module Apache PHP 5.3.5 par défaut libphp535.so
avec le numéro de version dans le nom afin que je puisse l'avoir là pour référence, puis j'ai nommé le module PHP 5.1.6 (avec le support de la bibliothèque GD) libphp516-gd.so
donc je sais ce que cela l'est aussi. De cette façon, je les ai tous deux côte à côte sur le système.
Et - comme je l'ai dit au début - la version PHP utilisée dans la ligne de commande n'a absolument rien à voir avec le module PHP Apache. Ainsi, vous pouvez avoir un certain nombre de versions différentes de modules PHP Apache assis sur le système prêt à l'emploi; ajustez simplement une configuration et redémarrez Apache et vous devriez être en mesure d'utiliser la version PHP que vous avez spécifiée pour Apache.
Si vous essayez d'exécuter du code PHP à partir de votre serveur Web, la version que vous utilisez est celle indiquée par
phpinfo()
= 5.6.10 .Votre serveur a apparemment plusieurs versions de PHP installées, et lorsque vous vous connectez et exécutez
php
sur la ligne de commande, vous obtenez l'ancienne version qui est installée dans / usr / bin / php.Un serveur peut avoir de nombreuses versions de PHP, et la vôtre semble le faire.
Si vous devez exécuter manuellement le même PHP que votre serveur Web, vous devez trouver l'autre version. Essayez d'exécuter ces commandes:
L'un d'entre eux peut révéler un PHP avec la même version que votre serveur Web, et lorsque vous déterminez lequel il est, vous pouvez utiliser celui-ci au lieu de celui par défaut.
la source
Si je peux ajouter mes 2 cents ...
Je mettais à jour ma version Nextcloud. Lorsque j'exécute la procédure de mise à niveau, je dois "sudo php" en tant qu'utilisateur apache, mais il a refusé de s'exécuter car la version php CLI exécutée par défaut par l'utilisateur apache était trop ancienne. Cependant, phpinfo (); sur mon serveur affiché la dernière version php installée.
J'ai réalisé que c'était parce que la variable PATH dans le fichier /home/apache/.bashrc était définie sur la première version de php que j'avais installée sur mon serveur , et qu'elle n'était plus jamais mise à jour (je compile / installe toujours php à partir des sources sur Github )
La solution:
Lorsque vous mettez à jour php sur votre serveur Web et que vous voulez vous assurer que la version php CLI utilisée est la plus récente lorsque vous êtes sudo en tant qu'utilisateur apache, n'oubliez pas de la changer dans le fichier .bashrc de cet utilisateur, comme ceci:
PATH=$PATH:/var/www/html: /usr/local/php7.1.32/bin export PATH
la source
Étapes pour résoudre ce problème. Tout d'abord quelle version PHP vous montre.
Maintenant, vous aurez besoin d'un chemin PHP, si vous ne le savez pas, vous pouvez contacter votre support d'hébergement pour le chemin PHP. Dans mon cas, c'était
Maintenant, il est temps d'exécuter cette commande dans le terminal.
Cela changera votre version PHP en PHP 7.1 Si vous voulez la changer en 7.2, vous pouvez essayer
Vous avez terminé. Vérifiez-le avec
la source
Créez un chemin de variable d'environnement pour la dernière version de php ex: C: \ wamp64 \ bin \ php \ php7.2.4 Maintenant, changez votre dossier de version de php précédent .php5.6.35 en un autre numéro php5.6.354 .. Ensuite, vérifiez php -v votre wamp serveur et phi cli seront les mêmes
la source