6.15 Как получить информацию про PHP с помощью скрипта phpinfo

PHPBanner

Скрипт phpinfo — это простой и удобный инструмент для получения полной информации о текущей установке PHP на сервере. Ниже мы рассмотрим пошаговый процесс его создания и использования.

Основные применения phpinfo
  • Проверка версии PHP для совместимости приложений.
  • Диагностика модулей и расширений — выяснить, установлены ли нужные библиотеки.
  • Анализ конфигурации — выявить, какие настройки могут потребовать изменения.
  • Отладка окружения — помощь в настройке и устранении неполадок.

Создание файла phpinfo.php

Для выполнения скрипта нам необходимо будет создать файл в формате .php. Его название может быть произвольным, но чтобы лишний раз не путаться мы назовем его phpinfo.php.

1. Подключитесь к вашему серверу через FTP или файловый менеджер в панели управления хостинга.

2. Перейдите в директорию, где находится Ваш сайт (обычно это /www/вашсайт.ком/ или аналог).

3. Создайте новый файл с именем phpinfo.php.

4. Добавьте в файл следующий код и сохраните изменения:

<?php
phpinfo();
?>

Файл создан. Теперь нужно открыть его в браузере.

Открытие файла и трактовка информации

В адресной строке введите URL файла, например, https://example.com/phpinfo.php, где example.com — Ваш домен.

Вы увидите страницу с подробной информацией о PHP:

Phpinfo.php
Внешний вид открытой страницы phpinfo.php

Страница phpinfo содержит много разделов. Ключевые из них:

  • PHP Version. Показана текущая фактическая версия PHP. Полезно для проверки совместимости скриптов с сервером:

Phpinfo.php, PHP version

  • Configure Command. Список расширений PHP, таких как mysqli, curl, mbstring. Помогает убедиться, что нужные модули активны:

Configure Command

  • Core. Содержит параметры конфигурации, такие как memory_limit, upload_max_filesize, max_execution_time. Также предоставляет множество информации про переменные PHP в текущем окружении, например строка disable_functions перечисляет запрещенные для исполнения функции. Полезно для настройки параметров сервера под нужды Вашего проекта:
Phpinfo.php, Core
Начало раздела Core

Дополнительно: как можно заметить, информация в этом разделе разбита на колонки Local Value и Master Value. Master в этом контексте является глобальными настройками, предопределенными на сервере и используется для выполнения всех скриптов пока настройки выполнения не переопределены локально с помощью таких методов как ini_set() или директивами .htaccess (зависит от веб-сервера).

Совет: детально вопрос ограничений PHP таких как memory_limit и другие рассматривается в отдельной статье.

  • Environment. Информация об окружении сервера, включая переменные PATH. Может быть полезно для диагностики некоторых проблем.

  • PHP Variables. Отображает заголовки, отправляемые сервером.

Важно: после использования файла phpinfo.php, желательно удалить его с сервера. Оставлять такой файл публично доступным опасно, так как злоумышленники могут использовать информацию о Вашем сервере против Вас.

Альтернативные способы

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

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

Дополнительно: при использовании множества различных версий PHP на одном сервере, нижеописанные команды следует модифицировать с указанием пути к версии PHP о какой Вы хотите получить данные. На практике это значит использование команды /usr/bin/php7.4 -i вместо php -i или /usr/bin/php7.4 -m вместо php -m.

php -i

Прямой альтернативой создания файла со скриптом и его выполнения в браузере является команда php -i.

Ее выполнение выведет Вам всю ту же информацию прямо в терминале:

Вывод php -i

Поскольку ее вывод очень объемный, имеет смысл сразу использовать ее в комбинации с grep для поиска нужного значения. Например:

php -i | grep memory_limit

Который вернет нам информацию именно про указанное ограничение PHP:

Вывод
memory_limit => 1024M => 1024M

php -m

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

А именно – команда php -m. Ее использование возвратит Вам список всех активных модулей PHP. Это Важно, так как модуль может быть установлен на сервере, но не активирован в текущей загрузке PHP.

Вывод php -m
[PHP Modules] bz2 calendar Core ctype curl date dom exif FFI fileinfo filter ftp gd gettext hash iconv igbinary imagick imap ionCube Loader json libxml mbstring msgpack mysqli mysqlnd openssl pcntl pcre PDO pdo_dblib pdo_mysql PDO_ODBC pdo_pgsql pdo_sqlite pgsql Phar posix readline Reflection session shmop SimpleXML sockets sodium SPL standard sysvmsg sysvsem sysvshm tidy tokenizer xml xmlreader xmlrpc xmlwriter xsl Zend OPcache zip zlib [Zend Modules] Zend OPcache the ionCube PHP Loader + ionCube24

Ее точно так же можно комбинировать с grep:

php -m | grep pdo
Вывод
pdo_dblib pdo_mysql pdo_pgsql pdo_sqlite

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