Comment déterminer quel PHP est utilisé?

10

Comment déterminer quel PHP est utilisé?

Par exemple, s'il y en a /usr/local/bin/phpet usr/local/bin/php5, comment puis-je savoir lequel est utilisé par mes scripts PHP?

Randell
la source

Réponses:

11

Si vous utilisez la CLI PHP, essayez d'utiliser ces commandes shell (je suppose que vous utilisez linux ici)

which php - will locate the php executable (this should be the default php used by you)
whereis php - The first path displayed will be the location of the php executable
echo $PATH - will print a list of paths separated by ":" where the system looks for commands

Si vous utilisez PHP comme module Apache, alors phpinfo () vous indiquera la version php utilisée et les fichiers de configuration php, PAS le chemin php . Si vous avez 2 versions de l'exécutable php, cela vous aidera. S'ils sont de la même version, peu importe qui est qui :)

Si vous voulez connaître la version php, alors php -v affichera la version php dans la CLI et tous les modules Zend installés.

Si vous voulez découvrir les fichiers ini inclus, alors php --ini affichera la liste des fichiers ini chargés par le module php (ceci s'applique à la version CLI).

quamis
la source
Merci pour toutes les contributions. Apparemment, la whichcommande était ce dont j'avais besoin.
Randell
@Randell - Ne pas utiliser which; utiliser à la command -vplace. Voir également Vérifier si un programme existe à partir d'un script Bash .
7

Ajoutez simplement un script simple

<?php phpinfo(); ?>
Chathuranga Chandrasekara
la source
Cela ne fonctionnera pas phpdepuis la connexion d'un utilisateur; et pas nécessairement le php utilisé par Apache?
5

En supposant que vous utilisez via le serveur Web:
vous pouvez placer la fonction suivante dans un script:

<?php 
phpinfo(); 
?>

Si cela ne fonctionne pas, cela pourrait être dû au fait que cette fonction est désactivée dans le php.ini. Cela est souvent fait pour des raisons de sécurité. Si c'est le cas, vous aurez une ligne dans votre php.ini comme:

disable_functions = phpinfo

Si tel est le cas, remplacez-le temporairement par

disable_functions =

Si vous utilisez php pour les scripts shell:

  1. Il devrait y avoir la «ligne shebang» en haut, quelque chose comme

    #! / usr / local / bin / php -q

  2. Êtes-vous sûr que l'un n'est pas un lien smybolic avec l'autre? faire

    ls -l / usr / local / bin / php

  3. Non ;-)

Kyle Brandt
la source
5

Également à partir de la ligne de commande:

$ php -v

PHP 5.2.6-3ubuntu4 avec Suhosin-Patch 0.9.6.2 (cli) (build: 31 mars 2009 02:11:31) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998- 2008 Zend Technologies

Coops
la source
Cela ne fonctionnera pas phpdepuis la connexion d'un utilisateur; et pas nécessairement le php utilisé par Apache?
1
<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
?>
rkthkr
la source
0

Si vous parlez de vos scripts Web qui sont appelés par votre serveur Web Apache et que PHP est configuré en tant que module Apache, la réponse est AUCUN.

Les emplacements que vous mentionnez dans votre question sont des interprètes de script de ligne de commande qui seraient appelés par la notation shebang comme

 #!/usr/local/bin/php

en haut de votre script de ligne de commande php

vous pouvez appeler les interprètes que vous avez mentionnés séparément, car ils ont des noms différents

# php

appellerait / usr / local / bin / php et

# php5

appellerait / usr / local / bin / php5

Aucun de ceux-ci n'est utilisé si vous utilisez PHP via le module Apache. Si vous utilisez la version CGI de php, elle devrait apparaître dans phpinfo (); production.


la source
0
<?php echo shell_exec('which php'); ?>

Cela fonctionne même si vous n'avez pas accès au shell. ;-)

yitwail
la source
Je ne pense pas que cela fasse ce que la personne qui demandait recherchait. Cela vous indique uniquement ce que l'environnement shell finirait par utiliser dans une recherche PATH. Ce n'est pas nécessairement le même PHP que celui avec lequel un script est exécuté.
Theuni