Как узнать номер версии PHP в Linux

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

Проверка версии PHP в Linux

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

Основной и самый быстрый способ — выполнить команду php -v. Она выводит информацию о версии интерпретатора, его типе (Zend Engine) и дате сборки.

php -v

Php fpm linux (настройка php-fpm в linux)

PHP 8.1.2 (cli) (built: Aug 12 2023 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies

Php oracle linux (установка php на oracle linux)

Если PHP не установлен, команда вернёт ошибку «command not found».

Возможные проблемы

  • Команда не найдена — PHP не установлен или не добавлен в переменную PATH. Решение: установить PHP (например, sudo apt install php) или найти полный путь к бинарному файлу.
  • Выводится несколько строк с разными версиями — признак наличия нескольких установленных версий PHP. Решение: использовать полный путь к нужной версии или команду update-alternatives.

Как проверить версию PHP, используемую веб-сервером (Apache/Nginx)?

Для этого создаётся файл info.php в корневой директории веб-сервера с вызовом функции phpinfo() и последующим открытием его в браузере. Метод позволяет увидеть версию SAPI (модуля), директории конфигурации и список модулей.

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

Linux apache php (настройка apache и php в linux)

(после открытия http://localhost/info.php в браузере выводится детальная таблица с версией PHP)

Php mysql linux (установка php и mysql в linux)

Типичные ошибки

  • Файл не открывается, показывается исходный код — PHP не обрабатывается веб-сервером. Решение: установить и настроить PHP-FPM или модуль PHP для Apache.
  • Путь корневой директории веб-сервера может отличаться в разных дистрибутивах. Для Ubuntu это /var/www/html, для CentOS /var/www/html или /usr/share/nginx/html.

Как узнать версию PHP без создания файлов, используя только терминал?

Команда php -i | grep 'PHP Version' извлекает строку с номером версии из вывода конфигурации (phpinfo() в командной строке). Это удобно для автоматизации.

php -i | grep 'PHP Version'

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

PHP Version => 8.1.2

Alt linux php (установка php на alt linux)

Альтернативно, короткая команда php -r 'echo PHP_VERSION;' выводит только номер версии.

php -r 'echo PHP_VERSION;'

Linux установить php (установка php в linux)

8.1.2

Сложности

  • Команда php -i выводит очень много строк, поэтому grep без кавычек может захватить не ту строку. Рекомендуется заключать шаблон в одинарные кавычки.
  • Если установлено несколько версий, grep может показать версию той, которая вызывается по умолчанию через PATH.

Как определить версию PHP через пакетный менеджер?

Пакетные менеджеры хранят установленные пакеты. Для Debian/Ubuntu используется dpkg -l | grep php, для Red Hat/CentOS rpm -qa | grep php. Это полезно, когда нужно найти все установленные пакеты PHP (разные версии, расширения).

# Ubuntu/Debian
dpkg -l | grep php
# CentOS/RHEL
rpm -qa | grep php
ii  php8.1-cli      8.1.2-1ubuntu2   amd64        commandline interpreter for the PHP scripting language
ii  php8.1-common   8.1.2-1ubuntu2   amd64        documentation, examples and common module...

Ограничения

  • Команда не отображает используемый в данный момент бинарник, только установленные пакеты. Для получения версии активного интерпретатора лучше использовать php -v.
  • Названия пакетов могут различаться. На Arch Linux используется pacman -Q | grep php.

Как найти путь и версию конкретного бинарника PHP?

Команда which php показывает путь к исполняемому файлу. Затем можно использовать readlink -f для получения фактического пути, если используется символическая ссылка, и выполнить php -v с полным путём.

which php
/usr/bin/php
readlink -f /usr/bin/php
/usr/bin/php8.1
/usr/bin/php8.1 -v
PHP 8.1.2 (cli) ...

Ситуации

  • Если which php ничего не выдаёт, PHP отсутствует в PATH. Решение: установить PHP или добавить путь в переменную PATH.
  • При наличии нескольких версий символическая ссылка может указывать на одну из них, и проверка через php -v покажет именно её.

Расширенные примеры проверки версии PHP в Linux

1. Детальная информация с флагом -n и указанием ini-файла

Запуск PHP без загрузки дополнительных конфигурационных файлов позволяет проверить версию в изолированном окружении.

Пример
php -n -v
PHP 8.1.2 (cli) (built: Aug 12 2023 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies

2. Получение всех строк, содержащих слово version (регистронезависимо)

Использование grep -i позволяет захватить все упоминания версии в выводе php -i.

Пример
php -i | grep -i 'version'
PHP Version => 8.1.2
Zend Engine Version => 4.1.2
Zend Extension API Version => 420210902
etc.

3. Проверка версии PHP-FPM (отдельный процесс)

Если используется PHP-FPM, его версию можно узнать напрямую через соответствующий бинарник (php-fpm8.1 -v).

Пример
php-fpm8.1 -v
PHP 8.1.2 (fpm-fcgi) (built: Aug 12 2023 12:00:00)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies

4. Сравнение версий CLI и веб-модуля с помощью curl

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

Пример
echo '<?php echo PHP_VERSION; ?>' > /var/www/html/version.php
curl -s http://localhost/version.php
8.1.2

5. Проверка версии для каждой установленной версии PHP через альтернативы

Утилита update-alternatives показывает, какие версии зарегистрированы, и позволяет переключаться между ними.

Пример
sudo update-alternatives --display php
php - auto mode
  link currently points to /usr/bin/php8.1
/usr/bin/php8.1 - priority 81
/usr/bin/php7.4 - priority 74

После этого можно выполнить php -v для каждой версии.

Пример
/usr/bin/php7.4 -v
PHP 7.4.33 (cli) (built: ...)

6. Использование PHP-скрипта для вывода констант версии

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

Пример
php -r 'echo "Major: " . PHP_MAJOR_VERSION . "
Minor: " . PHP_MINOR_VERSION . "
Release: " . PHP_RELEASE_VERSION . "
Version: " . PHP_VERSION;'
Major: 8
Minor: 1
Release: 2
Version: 8.1.2

7. Проверка версии через пакетный менеджер в разных дистрибутивах

Arch Linux:

Пример
pacman -Q | grep php
php 8.1.12-1
php-sqlite 8.1.12-1

Alpine Linux:

Пример
apk list -I | grep php
php8-8.1.12-r0

8. Обработка ошибки «command not found»

Если PHP не установлен, можно проверить доступные пакеты и установить их.

Пример
php -v 2>&1 || echo "PHP not found. Install it."
PHP not found. Install it.

9. Определение версии PHP через /proc/self/exe (если запущен процесс)

Для запущенного PHP-скрипта можно узнать версию через информацию о процессе.

Пример
# Из другого терминала, зная PID
ls -l /proc/12345/exe
/proc/12345/exe -> /usr/bin/php8.1

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

En
Linux версия php (php)