Как узнать номер версии PHP в Linux
Проверка версии PHP в Linux
Как узнать версию PHP из командной строки?
Основной и самый быстрый способ — выполнить команду php -v. Она выводит информацию о версии интерпретатора, его типе (Zend Engine) и дате сборки.
php -vPhp 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.phpLinux 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