Установление текущей версии интерпретатора PHP

Раздел: Администрирование PHP -> Администрирование PHP

Методы проверки версии PHP

Как быстро узнать версию PHP с помощью встроенной функции?

Основной эффективный способ - использование функции phpversion(). Она возвращает строку с текущей версией интерпретатора. Подходит для встраивания в код приложения или создания файла для быстрой проверки. Шаги:

<?php echo phpversion(); ?>

Check php version (проверка версии php)

Результат:

8.2.12

Admin php url (url администратора php)

Для получения расширенной информации о расширениях и настройках можно использовать phpinfo(), но её вывод предназначен для просмотра человеком.

Проблема: функция phpinfo() может быть отключена в php.ini (директива disable_functions). Тогда остаётся только phpversion().

Цель использования: быстрая проверка в процессе разработки, диагностика совместимости модулей.

Как получить всестороннюю информацию о PHP через phpinfo()?

Создать файл info.php с кодом:

<?php phpinfo(); ?>

Site am php (администрирование сайта php (am))

Открыть его в браузере. На странице отображается версия PHP, список установленных расширений, настройки конфигурации. Удобно при диагностике окружения.

Проблема: если функция отключена, страница будет пустой. Проверить директиву disable_functions в php.ini.

Случаи использования: настройка сервера, проверка наличия требуемых расширений перед установкой CMS.

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

На сервере с терминалом выполнить:

php -v

установить php сервер (установка php-сервера)

Вывод содержит версию и информацию о Zend Engine:

PHP 8.2.12 (cli) (built: Nov 15 2023 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies

Edit php (редактирование php-кода)

Также работает команда php --version.

Проблема: команда не найдена, если PHP не добавлен в PATH. Решение - указать полный путь к исполняемому файлу, например /usr/bin/php -v.

Цель: быстрая проверка без создания веб-файлов, на серверах без графического интерфейса.

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

Константа PHP_VERSION содержит версию в виде строки. Используется в коде для условных проверок:

<?php echo PHP_VERSION; ?>

Результат аналогичен вызову phpversion().

Ошибка: невозможно использовать в окружении, где PHP-код не выполняется (например, в shell-скриптах).

Случаи использования: внутри PHP-приложений для динамической проверки совместимости.

Как узнать версию PHP с помощью Composer?

Composer выводит версию PHP при выполнении команды composer show -p или просто composer --version. Однако последняя показывает версию самого Composer. Для версии PHP:

composer show -p | grep php

Вывод:

php 8.2.12

Этот метод полезен, когда Composer уже установлен и нужно проверить соответствие требований пакетов.

Проблема: Composer может быть не установлен или использовать другой интерпретатор (например, через Docker). Проверить путь к PHP у Composer.

Случаи использования: управление зависимостями, проверка требований перед установкой библиотек.

Дополнительные примеры с кодом и результатами

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

Сценарий, в котором приложение требует PHP 8.0 или новее. Используется phpversion() и version_compare():

Пример
<?php
$required = '8.0';
$current = phpversion();
if (version_compare($current, $required, '>=')) {
    echo "Версия PHP $current удовлетворяет требованиям ($required и выше).";
} else {
    echo "Требуется PHP $required или выше, установлена $current.";
}
?>

Результат выполнения:

Версия PHP 8.2.12 удовлетворяет требованиям (8.0 и выше).

Сравнение версий с помощью version_compare()

Функция version_compare() возвращает -1, 0 или 1. Пример проверки нескольких операторов:

Пример
<?php
echo version_compare('8.1.0', '8.0.0', '>='); // 1
echo version_compare('7.4.0', '8.0.0', '<');  // 1
echo version_compare('8.0.0', '8.0.0', '==');  // 0
?>

Результат:

110

Цифры выводятся без разделителей. Для наглядности можно добавить переносы строк.

Проверка версии отдельного расширения (модуля)

Функция phpversion() принимает необязательный параметр - имя расширения:

Пример
<?php
echo 'mbstring: ' . phpversion('mbstring') . "\n";
echo 'json: ' . phpversion('json') . "\n";
echo 'curl: ' . phpversion('curl') . "\n";
?>

Результат:

mbstring: 8.2.12
json: 1.8.0
curl: 8.2.12

Если расширение не загружено, возвращается false. Такая проверка полезна при диагностике неработающих модулей.

Получение версии PHP из командной строки внутри скрипта

Использование shell_exec() для запуска внешней команды и парсинга вывода:

Пример
<?php
$output = shell_exec('php -v');
preg_match('/PHP (\d+\.\d+\.\d+)/', $output, $matches);
$version = $matches[1] ?? 'Не удалось определить';
echo "Версия PHP из CLI: $version";
?>

Результат:

Версия PHP из CLI: 8.2.12

Может пригодиться, когда нужно сравнить версию веб-модуля и CLI, или если phpversion() отключена.

Массовая проверка версий PHP на нескольких серверах (shell-скрипт)

Сценарий для системного администратора: обход списка серверов по SSH и сбор версий:

Пример
#!/bin/bash
servers=("server1.example.com" "server2.example.com")
for server in "${servers[@]}"; do
    echo "Сервер: $server"
    ssh $server "php -v | head -n1"
done

Пример вывода:

Сервер: server1.example.com
PHP 8.1.18 (cli) (built: Apr 15 2024 10:30:00) ( NTS )
Сервер: server2.example.com
PHP 8.2.12 (cli) (built: Nov 15 2023 12:00:00) ( NTS )

Требуется настроенный SSH-доступ. Можно расширить скрипт для записи результатов в файл.

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

En
Check php version (php)