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