Нам часто потрібно дізнатися якомога більше інформації про сервер, для цього чудово підходить рідна функція `phpinfo()`:
phpinfo();die; // після запису конфігурації вийти зі скрипту
Це дозволяє легко побачити встановлену версію, розширення, бібліотеки та багато іншого.
Інформацію про налаштування та зміну параметрів див. наприкінці цієї статті.
Іноді корисно перерахувати тільки конкретну інформацію, тому ми можемо встановити перший параметр, щоб вказати саме те, що нас цікавить:
phpinfo(INFO_MODULES);
Для налаштування використовуються заздалегідь визначені константи:
Назва константи | Значення | Опис |
---|---|---|
INFO_GENERAL | 1 | Загальна конфігурація, розташування php.ini, дата останнього оновлення, веб-сервер, системна інформація та інше. |
INFO_CREDITS | 2 | PHP Кредити, докладніше див. phpcredits() . |
INFO_CONFIGURATION | 4 | Поточне розташування та директиви налаштувань. Більш детальну інформацію надасть функція ini_get() . |
INFO_MODULES | 8 | Інформація про встановлені модулі. Для отримання додаткової інформації дивіться функцію get_loaded_extensions() . |
INFO_ENVIRONMENT ¦ 16 ¦ Інформація про змінну Environment , доступну як $_ENV . |
||
INFO_VARIABLES ¦ 32 ¦ Огляд налаштувань суперглобальних змінних, відомих як EGPCS (Environment, GET, POST, Cookie, Server). |
||
INFO_LICENSE | 64 | Інформація про ліцензію на використання PHP та інші умови використання. |
INFO_ALL | -1 | Відображати всю інформацію (значення за замовчуванням) |
$_SERVER
Безпосередньо під час роботи скрипта ми можемо дізнатися досить багато інформації про налаштування сервера (наприклад, електронну пошту веб-майстра, поточну IP-адресу відвідувача або URL-адресу, яка викликається в даний момент).
Перерахувати всі існуючі значення легко:
foreach ($_SERVER as $key => $value) {echo $key . ':' . $value . '<br>';}
Попередження:** Не всі індекси повинні існувати (наприклад, якщо скрипт запускає cron в режимі CLI, то індекс з URL сторінки або IP-адресою запиту існувати не буде).
Значна частина конфігурації зберігається в файлі php.ini
і не доступна безпосередньо з PHP звичайним способом. Наприклад, максимальний розмір файлу для завантаження.
Для безпосереднього зчитування конфігурації використовуйте функцію ini_get()
(примітка: ця функція може бути включена не на всіх серверах, особливо це стосується хостів).
Наприклад, якщо ми хочемо дізнатися максимальний розмір файлу, який ми можемо завантажити, ми повинні написати власну реалізацію:
/*** @автор Ян Барашек*/public static function getMaxUploadFileSize(): int{$maxUpload = min(ini_get('post_max_size'),ini_get('upload_max_filesize'));if (strncmp($maxUpload, 'M', 1) === 0) {return (int) str_replace('M', '', $maxUpload);}return (int) $maxUpload;}
Повертає максимальне значення полів upload_max_filesize
та post_max_size
в МБ.
Самі налаштування зберігаються у файлі php.ini
. Його місцезнаходження можна легко знайти за допомогою функції phpinfo()
або викликавши команду php --ini
.
> php --iniConfiguration File (php.ini) Path: /etc/php/7.1/cliLoaded Configuration File: /etc/php/7.1/cli/php.iniScan for additional .ini files in: /etc/php/7.1/cli/conf.dAdditional .ini files parsed: /etc/php/7.1/cli/conf.d/10-mysqlnd.ini,/etc/php/7.1/cli/conf.d/10-opcache.ini,/etc/php/7.1/cli/conf.d/10-pdo.ini,/etc/php/7.1/cli/conf.d/20-calendar.ini,/etc/php/7.1/cli/conf.d/20-ctype.ini,/etc/php/7.1/cli/conf.d/20-exif.ini,/etc/php/7.1/cli/conf.d/20-fileinfo.ini,/etc/php/7.1/cli/conf.d/20-ftp.ini,/etc/php/7.1/cli/conf.d/20-gd.ini,/etc/php/7.1/cli/conf.d/20-gettext.ini
Крім того, шлях може бути розумно розібраний (працює на Linux-системах):
php -r "phpinfo();" | grep php.ini
Він повернеться:
Configuration File (php.ini) Path => /etc/php/7.1/cliLoaded Configuration File => /etc/php/7.1/cli/php.ini
Зазвичай конфігурація розбивається на декілька файлів відповідно до середовища та пакетів, де
php.ini
є глобально дійсним для всіх, в той час як наприкладCLI
конфігурація дійсна тільки для режиму CLI, тобто виклику cron або команди з терміналу.
Прикладом властивості, яка часто налаштовується безпосередньо в php.ini
є максимальний розмір файлу завантаження (за замовчуванням 2 МБ
, що вже є низьким показником у 2018 році).
У конфігураційному файлі це записується, наприклад, наступним чином:
; Maximum allowed size for uploaded files.upload_max_filesize = 40M; Must be greater than or equal to upload_max_filesizepost_max_size = 40M
Середина означає коментар, за яким слідують конкретні директиви конфігурації.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | uk