Як визначити, який PHP використовується?


10

Як визначити, який PHP використовується?

Наприклад, якщо є /usr/local/bin/phpі usr/local/bin/php5як я можу знати, який з них використовується моїми PHP-скриптами?

Відповіді:


11

Якщо ви використовуєте PHP CLI, спробуйте скористатися командами theese shell (я припускаю, що ви тут використовуєте 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).


Дякую за всі матеріали. Мабуть, whichкоманда - це те, що мені було потрібно.
Ренделл

@Randell - не використовувати which; використовувати command -vзамість цього. Також див. Перевірте, чи існує програма зі сценарію Bash .

7

Просто додайте простий сценарій

<?php phpinfo(); ?>

Не вдасться це виконати phpз входу користувача; а не обов’язково php, який використовує Apache?

5

Припустимо, що ви використовуєте через веб-сервер:
Ви можете помістити в сценарій таку функцію:

<?php 
phpinfo(); 
?>

Якщо це не працює, це може бути тому, що ця функція вимкнена в php.ini. Це часто робиться для безпеки. Якщо це так, у вашому php.ini з'явиться такий рядок, як:

disable_functions = phpinfo

Якщо це так, тимчасово змініть його на

disable_functions =

Якщо ви використовуєте php для скриптів Shell:

  1. На вершині має бути лінія 'shebang', щось подібне

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

  2. Ви впевнені, що один не є смайліковим посиланням на інший? робити

    ls -l / usr / local / bin / php

  3. Не ;-)


5

Також з командного рядка:

$ php -v

PHP 5.2.6-3ubuntu4 з Suhosin-Patch 0.9.6.2 (cli) (побудовано: 31 березня 2009 02:11:31) Copyright (c) 1997-2008 PHP Group Zend Engine v2.2.0, Copyright (c) 1998- 2008 Zend Technologies


Не вдасться це виконати phpз входу користувача; а не обов’язково php, який використовує Apache?

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

0

Якщо ви говорите про свої веб-скрипти, які викликаються вашим веб-сервером Apache, а PHP налаштовано як модуль Apache, то відповідь НЕ.

Місця, про які ви згадуєте у своєму запитанні, є інтерпретаторами скриптів командного рядка, які б називалися позначенням shebang, як

 #!/usr/local/bin/php

вгорі вашого сценарію php-командного рядка

ви можете зателефонувати перекладачам, які ви згадали, окремо, оскільки вони мають різні назви

# php

закликає / usr / local / bin / php та

# php5

закликає / usr / local / bin / php5

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



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

Це працює, навіть якщо у вас немає доступу до оболонки. ;-)


Я не думаю, що це робить те, чого шукала людина. Це говорить лише про те, яке середовище оболонки закінчилося б у пошуку PATH. Це не обов'язково той самий PHP, як той, з яким виконується сценарій.
Теуні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.