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 в панелі.