Wie kann man feststellen, welches PHP verwendet wird?


10

Wie kann man feststellen, welches PHP verwendet wird?

Zum Beispiel, wenn es /usr/local/bin/phpund usr/local/bin/php5, wie kann ich wissen , welche durch mein PHP - Skripte verwendet wird?

Antworten:


11

Wenn Sie die PHP-CLI verwenden, versuchen Sie, diese Shell-Befehle zu verwenden (ich gehe davon aus, dass Sie hier Linux verwenden).

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

Wenn Sie PHP als Apache-Modul verwenden, zeigt Ihnen phpinfo () die verwendete PHP-Version und die PHP-Konfigurationsdateien an, NICHT den PHP-Pfad . Wenn Sie 2 Versionen der ausführbaren PHP-Datei haben, hilft Ihnen dies. Wenn sie die gleiche Version sind, spielt es keine Rolle, wer wer ist :)

Wenn Sie die PHP-Version herausfinden möchten, druckt PHP-V die PHP-Version in der CLI und alle installierten Zend-Module.

Wenn Sie die enthaltenen INI-Dateien herausfinden möchten, zeigt php --ini die Liste der vom PHP-Modul geladenen INI-Dateien an (dies gilt für die CLI-Version).


Danke für alle Eingaben. Anscheinend ist der whichBefehl das, was ich brauchte.
Randell

@ Randell - Nicht verwenden which; Verwenden Sie command -vstattdessen. Siehe auch Überprüfen, ob ein Programm aus einem Bash-Skript vorhanden ist .

7

Fügen Sie einfach ein einfaches Skript hinzu

<?php phpinfo(); ?>

Wird dies nicht über phpdie Anmeldung eines Benutzers ausgeführt? und nicht unbedingt das von Apache verwendete PHP?

5

Angenommen, Sie verwenden über den Webserver:
Sie können die folgende Funktion in ein Skript einfügen:

<?php 
phpinfo(); 
?>

Wenn dies nicht funktioniert, kann dies daran liegen, dass diese Funktion in der php.ini deaktiviert ist. Dies geschieht häufig aus Sicherheitsgründen. Wenn dies der Fall ist, haben Sie eine Zeile in Ihrer php.ini wie:

disable_functions = phpinfo

Wenn dies der Fall ist, ändern Sie es vorübergehend in

disable_functions =

Wenn Sie PHP für Shell-Skripte verwenden:

  1. Oben sollte sich die 'Shebang-Linie' befinden, so etwas wie

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

  2. Bist du sicher, dass einer keine smybolische Verbindung zum anderen ist? machen

    ls -l / usr / local / bin / php

  3. Nicht ;-)


5

Auch von der Kommandozeile:

$ php -v

PHP 5.2.6-3ubuntu4 mit Suhosin-Patch 0.9.6.2 (cli) (erstellt: 31. März 2009 02:11:31) Copyright (c) 1997-2008 Die PHP Group Zend Engine v2.2.0, Copyright (c) 1998- 2008 Zend Technologies


Wird dies nicht über phpdie Anmeldung eines Benutzers ausgeführt? und nicht unbedingt das von Apache verwendete PHP?

1
<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
?>

0

Wenn Sie über Ihre Web-Skripte sprechen, die von Ihrem Apache-Webserver aufgerufen werden und PHP als Apache-Modul konfiguriert ist, lautet die Antwort NONE.

Die Orte, die Sie in Ihrer Frage erwähnen, sind Befehlszeilenskript-Interpreter, die durch Shebang-Notation wie aufgerufen würden

 #!/usr/local/bin/php

oben in Ihrem PHP-Kommandozeilen-Skript

Sie können die von Ihnen genannten Dolmetscher separat anrufen, da sie unterschiedliche Namen haben

# php

würde / usr / local / bin / php und aufrufen

# php5

würde / usr / local / bin / php5 aufrufen

Keines davon wird verwendet, wenn Sie PHP über das Apache-Modul verwenden. Wenn Sie die CGI-Version von PHP verwenden, sollte diese in phpinfo () angezeigt werden. Ausgabe.



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

Dies funktioniert auch dann, wenn Sie keinen Shell-Zugriff haben. ;-);


Ich glaube nicht, dass dies das tut, wonach die fragende Person gesucht hat. Hier erfahren Sie nur, was die Shell-Umgebung bei einer PATH-Suche verwenden würde. Das ist nicht unbedingt das gleiche PHP wie das, mit dem ein Skript ausgeführt wird.
Theuni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.