Назад | Перейти на главную страницу

Как определить, какой PHP используется?

Как определить, какой PHP используется?

Например, если есть /usr/local/bin/php и usr/local/bin/php5, как мне узнать, какой из них используется моими скриптами PHP?

Если вы используете интерфейс командной строки PHP, попробуйте использовать эти команды оболочки (я предполагаю, что вы здесь используете Linux)

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

Если вы используете PHP в качестве модуля Apache, то phpinfo () будет сообщить вам используемую версию php и файлы конфигурации php, а НЕ путь php. Если у вас есть 2 версии исполняемого файла php, это вам поможет. Если это одна и та же версия, тогда не имеет значения, кто кто :)

Если вы хотите узнать версию php, тогда php -v напечатает версию php в CLI и любых установленных модулях Zend.

Если вы хотите узнать, какие ini-файлы включены, тогда php --ini отобразит список ini-файлов, загруженных модулем php (это относится к версии CLI).

Просто добавьте простой скрипт

<?php phpinfo(); ?>

Предполагая, что вы используете через веб-сервер:
Вы можете поместить в скрипт следующую функцию:

<?php 
phpinfo(); 
?>

Если это не сработает, возможно, эта функция отключена в php.ini. Часто это делается в целях безопасности. Если это так, в вашем php.ini будет такая строка, как:

disable_functions = phpinfo

В этом случае временно измените его на

disable_functions =

Если вы используете php для сценариев оболочки:

  1. Наверху должна быть линия shebang, что-то вроде

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

  2. Вы уверены, что одно не является навязчивой ссылкой на другое? делать

    ls -l / usr / локальный / bin / php

  3. Не надо ;-)

Также из командной строки:

$ php -v

PHP 5.2.6-3ubuntu4 с Suhosin-Patch 0.9.6.2 (cli) (построено: 31 марта 2009 г. 02:11:31) Авторские права (c) 1997-2008 гг. PHP Group Zend Engine v2.2.0, Авторское право (c) 1998- 2008 Zend Technologies

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

Если вы говорите о своих веб-скриптах, которые вызываются вашим веб-сервером Apache, а PHP настроен как модуль Apache, тогда ответ НЕТ.

Места, которые вы упомянули в своем вопросе, являются интерпретаторами сценария командной строки, которые будут вызываться с помощью записи shebang, например

 #!/usr/local/bin/php

в верхней части скрипта php-командной строки

Вы можете вызвать упомянутых вами переводчиков отдельно, так как они имеют разные имена

# php

вызовет / usr / local / bin / php и

# php5

вызовет / usr / local / bin / php5

Ни один из них не используется, если вы используете PHP через модуль Apache. Если вы используете CGI-версию php, она должна отображаться в phpinfo (); вывод.

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

Это работает, даже если у вас нет доступа к оболочке. ;-)