Как проверить версию PHP в Linux

Как узнать версию php linux

Как узнать версию php linux

Работа с веб-приложениями на сервере напрямую зависит от используемой версии PHP. От неё зависят поддержка необходимых функций, совместимость с фреймворками и безопасность. В Linux определить текущую версию можно несколькими способами, и выбор метода зависит от того, установлен ли PHP через пакетный менеджер, используется ли несколько версий параллельно или сервер работает под управлением Apache либо Nginx.

Для проверки версии, обслуживающей сайт, применяют команды phpinfo() внутри тестового файла или анализируют настройки php-fpm. Также полезно уточнить версию пакета через системный менеджер: в Debian-подобных системах это apt show php, в Red Hat-подобных – yum info php или dnf info php. Такой подход помогает убедиться, что на сервере действительно установлена та редакция, которая нужна для работы приложений.

Проверка версии PHP через терминал с помощью команды php -v

$ php -v
PHP 8.1.12 (cli) (built: Oct 25 2022 12:34:56) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.12, Copyright (c) Zend Technologies
  • Первая строка показывает номер версии PHP и режим запуска (CLI).
  • Дата сборки помогает определить актуальность установленного пакета.
  • Zend Engine указывает на версию ядра, что может быть критично при работе с расширениями.

Если команда php -v возвращает ошибку «command not found», значит PHP не установлен или не добавлен в переменную PATH. В этом случае следует:

  1. Убедиться, что пакет php установлен через менеджер пакетов: apt install php или yum install php.
  2. Проверить путь к бинарному файлу: which php.
  3. Добавить путь в переменную окружения PATH, если интерпретатор установлен, но не вызывается напрямую.

Для скриптов, которые запускаются автоматически, рекомендуется явно указывать путь к используемой версии PHP, например: /usr/bin/php -v.

Проверка версии PHP, используемой веб-сервером Apache

Проверка версии PHP, используемой веб-сервером Apache

Чтобы определить, какую версию PHP обрабатывает Apache, создайте диагностический скрипт в корневой директории сайта:

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

После этого откройте http://адрес_сервера/info.php в браузере. На странице будет указана строка PHP Version, отражающая актуальную сборку, задействованную Apache через модуль libphp или PHP-FPM.

Для контроля безопасности не оставляйте файл info.php доступным после проверки:

rm /var/www/html/info.php

Сравнить данные, выдаваемые Apache и CLI-версией PHP, можно с помощью:

php -v

Метод Команда/URL Что показывает
Через Apache http://адрес_сервера/info.php Версия PHP, реально используемая веб-сервером
Через CLI php -v Версия интерпретатора, вызываемого из командной строки

Функция phpinfo() формирует полную сводку о конфигурации PHP: версия интерпретатора, активные модули, пути к файлам конфигурации, параметры компиляции и переменные окружения.

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

<?php phpinfo(); ?>

Разместите его в каталоге веб-сервера и откройте через браузер. В верхнем блоке отобразится текущая версия PHP, а ниже – список подключённых расширений, значения php.ini, используемые библиотеки и ограничения (например, memory_limit или max_execution_time).

После проверки рекомендуется удалить файл, чтобы исключить утечку технических данных.

Проверка версии PHP в Nginx с использованием php-fpm

Проверка версии PHP в Nginx с использованием php-fpm

Для Nginx версия PHP определяется через php-fpm, так как веб-сервер напрямую не обрабатывает PHP-скрипты. Основной способ – создать диагностический файл, который будет выполняться через php-fpm.

В корне сайта или в отдельной тестовой директории создайте файл info.php со следующим содержимым:

<?php phpinfo(); ?>

Убедитесь, что в конфигурации Nginx настроена передача .php файлов в сокет или порт php-fpm, например:

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

После сохранения файла откройте в браузере http://домен/info.php. На загруженной странице будет указана используемая версия PHP в строке «PHP Version».

Для предотвращения утечки информации рекомендуется сразу удалить info.php после проверки.

Определение версии PHP в установленных пакетах системы

Определение версии PHP в установленных пакетах системы

В Linux версии PHP в установленных пакетах можно определить через пакетный менеджер. Для систем на базе Debian/Ubuntu используется команда:

dpkg -l | grep php

В Red Hat/CentOS/Fedora используется:

rpm -qa | grep php

Команда отображает версии пакетов PHP, например, php-8.1.2-1.el8.x86_64 соответствует PHP 8.1.2.

Для систем с dnf или yum можно дополнительно проверить версию основного пакета:

dnf list installed php\* или yum list installed php\*

Если нужно узнать версию конкретного модуля, например, php-mysql, используйте:

dpkg -s php-mysql | grep Version на Debian/Ubuntu или rpm -qi php-mysql на Red Hat-подобных системах.

Проверка через пакетный менеджер гарантирует точное определение установленной версии, включая дополнительные модули и расширения, что важно для совместимости с веб-приложениями и настройкой окружения.

Проверка версии PHP в разных окружениях и виртуальных хостах

Проверка версии PHP в разных окружениях и виртуальных хостах

Если на сервере используется несколько версий PHP для разных виртуальных хостов, проверку удобнее выполнять через PHP-скрипт с функцией phpinfo(). Создайте файл info.php с содержимым <?php phpinfo(); ?> в корне нужного хоста и откройте его в браузере. В разделе «PHP Version» будет указана версия именно для этого виртуального хоста.

Для серверов с менеджером версий, например update-alternatives, актуальную CLI-версию PHP можно уточнить командой update-alternatives --display php. Это позволяет увидеть, какие версии установлены и какая используется по умолчанию.

В окружениях с Apache или Nginx важно проверять, какая версия PHP подключена через модуль или FastCGI. Для Apache выполните apache2ctl -M | grep php, чтобы убедиться, какой модуль загружен. Для Nginx проверьте путь к php-fpm.sock в конфигурации сайта и сравните с установленными версиями php-fpm через systemctl status php*-fpm.

Если виртуальные хосты используют разные обработчики, например PHP-FPM для одного и mod_php для другого, каждая проверка должна выполняться отдельно, иначе можно получить неверные данные о версии.

Вопрос-ответ:

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

Чтобы определить версию PHP в Linux через командную строку, откройте терминал и введите команду php -v. После этого вы увидите номер версии PHP, информацию о сборке и дату её выпуска. Этот способ работает независимо от установленного дистрибутива Linux и позволяет быстро проверить текущую версию без лишних действий.

Можно ли проверить версию PHP для конкретного веб-сервера, а не командной строки?

Да, можно. Если на сервере установлен Apache или Nginx с PHP, создайте файл, например info.php, с содержимым <?php phpinfo(); ?> в корне веб-сайта. После открытия этого файла через браузер вы увидите подробную информацию о версии PHP, загруженных модулях, конфигурации и других параметрах.

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

Если в системе установлено несколько версий PHP, можно проверить их с помощью команды update-alternatives --display php или указав путь к конкретной версии, например /usr/bin/php7.4 -v. Также в Apache или Nginx можно посмотреть, какая версия используется для конкретного виртуального хоста, проверив настройки в php-fpm или модулях PHP для веб-сервера.

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

Да, пакетные менеджеры предоставляют информацию о версии PHP. Например, для Debian/Ubuntu используйте команду apt show php или apt list --installed | grep php, чтобы увидеть установленные пакеты и их версии. В Fedora, CentOS или RHEL можно использовать dnf info php или rpm -qi php. Эти команды показывают точную версию пакета и позволяют понять, какие версии компонентов PHP установлены.

Ссылка на основную публикацию