6.15 Как получить информацию про PHP с помощью скрипта phpinfo
Скрипт 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 Version. Показана текущая фактическая версия PHP. Полезно для проверки совместимости скриптов с сервером:
- Configure Command. Список расширений PHP, таких как
mysqli
,curl
,mbstring
. Помогает убедиться, что нужные модули активны:
- Core. Содержит параметры конфигурации, такие как
memory_limit
,upload_max_filesize
,max_execution_time
. Также предоставляет множество информации про переменные PHP в текущем окружении, например строкаdisable_functions
перечисляет запрещенные для исполнения функции. Полезно для настройки параметров сервера под нужды Вашего проекта:
Дополнительно: как можно заметить, информация в этом разделе разбита на колонки 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.
Ее выполнение выведет Вам всю ту же информацию прямо в терминале:
Поскольку ее вывод очень объемный, имеет смысл сразу использовать ее в комбинации с 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 в панели.