Версия PHP: как её определить на сервере

Раздел: Администрирование -> Информационные запросы

Основные способы проверки версии PHP

Как быстро узнать версию PHP через командную строку?

Наиболее эффективный способ для администратора, имеющего доступ к серверу по SSH - выполнить команду php -v. Это покажет версию интерпретатора, дату сборки и информацию о Zend Engine.

php -v

версия php на сервере (проверка версии php на сервере)

PHP 8.1.12 (cli) (built: Oct 28 2022 08:16:41) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.1.12, Copyright (c) Zend Technologies

Пояснение: команда запускает консольный интерпретатор PHP с ключом -v, который выводит информацию о версии.

Типичные проблемы:

  • Команда не найдена - PHP не установлен или не добавлен в переменную PATH. Решение: найти полный путь к исполняемому файлу через which php или /usr/bin/php -v.
  • На сервере установлено несколько версий PHP. Уточните нужную, например php8.1 -v или ls /usr/bin/php*.
  • Ошибка доступа - выполните команду от имени пользователя с правами на запуск PHP.

Как определить версию PHP с помощью скрипта phpinfo()?

Этот метод подойдет, если нет доступа к командной строке, но есть возможность создать файл в корне сайта. Создайте файл info.php с содержимым:

<?php phpinfo(); ?>

Откройте его в браузере по адресу http://ваш-сайт.ру/info.php. На странице будет множество параметров, включая версию PHP в первой строке.

Осторожно: Не оставляйте такой файл на продакшене! Он раскрывает критическую информацию о сервере. После проверки немедленно удалите файл или ограничьте доступ по IP через .htaccess.

Если функция phpinfo() заблокирована директивой disable_functions, используйте альтернативные методы.

Как получить только номер версии PHP без лишних данных?

Используйте константу PHP_VERSION в простом скрипте:

<?php echo PHP_VERSION; ?>

Вывод: 8.1.12. Этот метод также работает в командной строке через php -r 'echo PHP_VERSION;'.

В редких случаях константа может быть переопределена. Для надежности используйте функцию phpversion().

Как проверить версию PHP через панель управления хостингом?

Многие хостинг-провайдеры предоставляют интерфейс для выбора или просмотра версии PHP. Например, в cPanel: раздел Select PHP Version, в ISPmanager: меню PHP - Версии. Обычно там отображается текущая версия и список доступных для переключения.

Иногда панель показывает не ту версию, которая реально используется. Проверьте через скрипт.

Как удаленно получить версию PHP с помощью curl?

Если скрипт с phpinfo() уже размещен, можно выполнить запрос с другого сервера или локально:

curl -s http://example.com/info.php | grep 'PHP Version'
PHP Version => 8.1.12

Либо используйте wget -qO- http://example.com/info.php | grep 'PHP Version'.

Если сервер использует HTTPS с самоподписанным сертификатом, добавьте -k в curl.

Расширенные примеры и дополнительные возможности

Здесь представлены более детальные примеры для различных ситуаций.

Пример 1: Использование php -i для получения версии

Пример
php -i | grep 'PHP Version'
PHP Version => 8.1.12

Пример 2: Функция phpversion()

Пример
<?php echo phpversion(); ?>
8.1.12

Пример 3: Проверка минимальной версии PHP в скрипте

Пример
<?php
if (PHP_VERSION_ID < 80100) {
    die('Требуется PHP 8.1 или выше');
}
echo 'Версия подходит';
?>
Версия подходит

Пример 4: Список всех установленных версий PHP на сервере

Пример
ls /usr/bin/php*
/usr/bin/php8.0  /usr/bin/php8.1  /usr/bin/php8.2

или через update-alternatives:

Пример
update-alternatives --list php

Пример 5: Получение версии в переменную bash

Пример
PHP_VERSION=$(php -r 'echo PHP_VERSION;')
echo $PHP_VERSION
8.1.12

Пример 6: Проверка версии модуля Apache

Пример
apachectl -M | grep php
php8_module (shared)

Пример 7: Команда в Windows

Пример
php -v
PHP 8.1.12 (cli) (built: Oct 28 2022 08:16:41) ( NTS ) ...

Пример 8: Через CGI

Пример
php-cgi -v

Пример 9: phpinfo() с ограничением вывода

Пример
<?php phpinfo(INFO_GENERAL); ?>

Пример 10: Извлечение версии через curl с регулярным выражением

Пример
curl -s http://example.com/info.php | grep -oP 'PHP Version \K[0-9.]+'
8.1.12

Пояснение: обратная косая перед K экранирует символ в регулярном выражении. В JSON эта строка требует дополнительного экранирования, но внутри HTML она записана корректно.

Проверка версии PHP на сервере - comments

En
версия php на сервере (php)