Проверка версии PHP на сайте: способы и инструкции
Как создать простой скрипт для вывода версии PHP?
Наиболее надёжный способ определить версию PHP на сервере - создать файл с расширением .php, содержащий вызов функции phpinfo() или константы PHP_VERSION. Этот файл размещается в корневой директории сайта, после чего открывается в браузере.
<?php phpinfo(); ?>узнать php сайта (узнать версию php на сайте)
После открытия страницы в браузере отображается подробная информация о конфигурации PHP. Строка PHP Version содержит нужное значение. Более краткий вариант - вывести только версию:
<?php echo 'Версия PHP: ' . PHP_VERSION; ?>Возможные проблемы:
- Файл не выполняется, а отображается как текст - значит, PHP не обрабатывается. Проверяется расширение .php и настройки веб-сервера (например, директива AddType application/x-httpd-php .php).
- Ошибка 500 - вероятно, синтаксическая ошибка или запрет выполнения. Проверяется синтаксис и права доступа (644).
- После проверки файл следует удалить, чтобы избежать раскрытия конфигурации.
Цель использования: быстрая единоразовая проверка, когда есть доступ к файловой системе сайта через FTP или файловый менеджер хостинга.
Как проверить версию PHP через командную строку?
Если есть SSH-доступ к серверу, выполняется команда php -v. Она показывает версию интерпретатора.
php -vPHP 8.1.12 (cli) (built: Nov 9 2022 09:57:42) ( ZTS Visual C++ 2019 x64 ) Copyright (c) The PHP Group Zend Engine v4.1.12, Copyright (c) Zend Technologies
Проблемы: Команда может вывести версию другого PHP (например, системного, а не того, что используется в вебе). Для точности лучше указать полный путь: /usr/bin/php -v или найти через which php. Также может отсутствовать доступ к SSH.
Цель использования: регулярные проверки на выделенных серверах или VPS, возможность автоматизации через скрипты.
Можно ли узнать версию PHP по HTTP-заголовкам ответа?
По умолчанию PHP отправляет HTTP-заголовок X-Powered-By: PHP/8.1.12. Проверяется с помощью утилиты curl или инструментов разработчика браузера.
curl -I https://example.com | grep -i "x-powered-by"X-Powered-By: PHP/8.1.12
Если директива expose_php выключена, заголовок не отправляется. Тогда этот способ не работает.
Проблема: Современные серверы часто скрывают версию PHP. Метод ненадёжен. Альтернатива - проверить заголовок Server, но он может содержать только PHP/версию, если сервер - встроенный PHP.
Цель использования: быстрая удалённая проверка без доступа к файлам, полезна для аудита сайтов.
Как определить версию PHP через панель управления хостингом?
Большинство панелей (cPanel, ISPmanager, Plesk) показывают текущую версию PHP в разделе управления PHP или в информации о сайте. В cPanel, например, раздел Select PHP Version отображает установленную версию и позволяет её изменить.
Цель использования: когда есть доступ к панели хостинга и нет необходимости писать код.
Как вывести версию PHP в существующей странице сайта?
Если уже есть доступ к управлению темами или плагинами CMS, можно добавить вызов функции phpversion() в любой исполняемый PHP-файл. Например, в нижний колонтитул WordPress:
<?php echo 'PHP ' . phpversion(); ?>Проблема: Изменение файлов CMS может нарушить обновления. Лучше использовать временный скрипт или плагин.
Цель использования: быстрая проверка без создания отдельного файла, если есть редактор файлов сайта.
Как узнать версию PHP с помощью онлайн-сервисов?
Сервисы вроде whatismyphpversion.com предлагают загрузить их скрипт или вставить URL вашего файла info.php. Фактически это то же создание скрипта, но с дополнительным анализом.
Цель использования: когда нет возможности выполнить команды, но есть возможность загрузить файл.
Расширенные примеры определения версии PHP
Пример 1. Скрипт с выводом полной информации о PHP
Следующий скрипт выводит версию PHP, версию Zend Engine и архитектуру компиляции.
<?php
echo 'PHP Version: ' . PHP_VERSION . "\n";
echo 'Zend Engine: ' . zend_version() . "\n";
echo 'Архитектура: ' . php_uname('m') . "\n";
echo 'Дата сборки: ' . phpinfo(INFO_GENERAL) ? 'см. phpinfo' : '';
?>Результат выполнения:
PHP Version: 8.1.12 Zend Engine: 4.1.12 Архитектура: x86_64 Дата сборки: см. phpinfo
Пример 2. Формирование JSON-ответа с версией PHP
Этот скрипт возвращает данные в формате JSON, удобном для автоматической обработки.
<?php
header('Content-Type: application/json');
$data = [
'php_version' => phpversion(),
'server_software' => $_SERVER['SERVER_SOFTWARE'] ?? 'unknown',
'server_protocol' => $_SERVER['SERVER_PROTOCOL'] ?? 'unknown'
];
echo json_encode($data, JSON_PRETTY_PRINT);
?>Результат выполнения (curl или браузер):
{
"php_version": "8.1.12",
"server_software": "Apache/2.4.41 (Unix)",
"server_protocol": "HTTP/1.1"
}Пример 3. Получение версии PHP из вывода phpinfo() с помощью регулярного выражения
Если нужно извлечь только версию, а не весь вывод, можно использовать буферизацию вывода.
<?php
ob_start();
phpinfo();
$html = ob_get_clean();
preg_match('/PHP Version\s*<\/td>]*>([^<]+)/i', $html, $matches);
$version = $matches[1] ?? 'не найдено';
echo 'Версия PHP: ' . $version;
?>Результат выполнения:
Версия PHP: 8.1.12
Пример 4. Проверка версии PHP через командную строку с помощью php -r
Можно выполнить PHP-код прямо в командной строке без создания файла.
Пример php -r 'echo PHP_VERSION;'
8.1.12
Для проверки разных установок PHP указывается полный путь к интерпретатору:
Пример /opt/php8.2/bin/php -r 'echo PHP_VERSION;'
Пример 5. Проверка версии PHP через HTTP-заголовки с помощью curl (включая случаи выключенного expose_php)
Когда заголовок X-Powered-By скрыт, можно попробовать найти версию в теле ответа, если сервер возвращает другую информацию (например, на странице 404).
Пример curl -sI https://example.com | grep -i php || echo "Заголовок не найден"
Если сервер не скрывает, результат будет как в основном разделе. В противном случае никакой информации.
Пример 6. Скрипт для проверки минимальной версии PHP
Такой скрипт может использоваться как часть установщика приложения.
Пример <?php
$required = '7.4';
$current = phpversion();
if (version_compare($current, $required, '>=')) {
echo "Версия $current подходит (требуется $required).";
} else {
echo "Требуется PHP $required или выше, у вас $current.";
}
?>
Результат при версии 8.1.12:
Версия 8.1.12 подходит (требуется 7.4).
Пример 7. Использование в WordPress: shortcode для вывода версии PHP
В файл functions.php темы добавляется код, после чего вызов шорткода [php_version] выводит версию.
Пример add_shortcode('php_version', function() {
return 'Версия PHP: ' . phpversion();
});
Результат на странице: Версия PHP: 8.1.12
Пример 8. Пакетная проверка версии PHP на нескольких сайтах с помощью bash и curl
Если есть список URL, можно автоматизировать проверку заголовков.
Пример for url in example.com example.org example.net; do
echo -n "$url: "
curl -sI "https://$url" | grep -i 'x-powered-by' | sed 's/.*PHP\///' || echo 'не обнаружено'
done
Пример вывода:
example.com: 8.1.12
example.org: 8.0.25
example.net: не обнаружено
Узнать версию PHP на сайте - comments
Enузнать php сайта (php)