PHP: диагностика и настройки

Раздел: Администрирование PHP

Основные методы получения сведений о PHP

Как получить полную информацию о PHP с помощью одного файла?

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

Создайте файл info.php в корневой директории веб-сервера:

<?php
phpinfo();
?>

обработка php (обработка данных в php)

Откройте в браузере http://ваш-сайт/info.php.

После использования файл рекомендуется удалить или защитить паролем.

Возможные проблемы:

  • Пустая страница — проверьте установку PHP и работу веб-сервера. Файл должен иметь расширение .php.
  • Ошибки синтаксиса — используйте тег <?php, а не <?.
  • Нет вывода — функция может быть отключена директивой disable_functions в php.ini.

Как получить информацию о PHP из командной строки?

Команда php -i (или php --info) выводит данные в текстовом формате.

php -i

Php learning (обучение php)

Для поиска конкретного параметра, например memory_limit:

php -i | grep memory_limit

Php учебник (учебник по php)

Сохранение вывода в файл:

php -i > phpinfo.txt

Apis php (api на php)

Если команда не найдена, установите пакет php-cli или добавьте PHP в PATH.

Как сохранить вывод phpinfo() в текстовый файл?

Используйте буферизацию вывода и функцию file_put_contents:

<?php
ob_start();
phpinfo();
$info = ob_get_clean();
file_put_contents('phpinfo.html', $info);
echo 'Информация сохранена в phpinfo.html';
?>

Php categoryid (категории в php)

Этот скрипт можно выполнить через браузер или CLI. В CLI убедитесь, что расширение mbstring доступно для корректного преобразования HTML.

Если файл пустой, проверьте права на запись в директорию. Убедитесь, что ob_start() вызывается до phpinfo().

Как программно получить отдельные параметры PHP?

Используйте функции ini_get(), get_loaded_extensions(), phpversion() и другие.

<?php
echo 'Версия PHP: ' . phpversion() . "\n";
echo 'Лимит памяти: ' . ini_get('memory_limit') . "\n";
echo 'Расширения: ' . implode(', ', get_loaded_extensions()) . "\n";
echo 'Максимальный размер загружаемого файла: ' . ini_get('upload_max_filesize') . "\n";
?>

Html javascript php (интеграция html, javascript и php)

Не все директивы доступны через ini_get() — некоторые можно прочитать только через ini_get_all().

Как получить только список загруженных модулей?

Передайте константу INFO_MODULES в phpinfo():

<?php
phpinfo(INFO_MODULES);
?>

Index php post (обработка post-запросов в php)

Также можно использовать get_loaded_extensions() для простого списка.

В некоторых версиях PHP вывод может быть неполным. Для CLI используйте php -m.

Как получить только конфигурационные директивы?

Используйте константу INFO_CONFIGURATION:

<?php
phpinfo(INFO_CONFIGURATION);
?>

Index php page ru (создание index.php страницы)

Это покажет только секцию "Configuration" из стандартного вывода phpinfo().

Некоторые директивы могут отображаться в других секциях, например в "PHP Core".

Как посмотреть переменные окружения PHP?

Используйте INFO_VARIABLES или INFO_ENVIRONMENT:

<?php
phpinfo(INFO_VARIABLES); // переменные суперглобальных массивов
phpinfo(INFO_ENVIRONMENT); // переменные окружения
?>

Php javascript css (javascript и css в php)

Также можно вывести содержимое $_SERVER и $_ENV напрямую.

Некоторые переменные могут быть скрыты настройками безопасности (expose_php = Off).

Как проверить, какой обработчик PHP используется (mod_php, FastCGI, FPM)?

В выводе phpinfo() найдите строку Server API. В CLI это Command Line Interface. Для веб-сервера Apache это может быть Apache 2.0 Handler или FPM/FastCGI.

php -i | grep 'Server API'

Php m3u (создание m3u плейлиста на php)

Если используется Nginx с php-fpm, Server API будет FPM/FastCGI. Для проверки php-fpm используйте скрипт:

<?php
echo php_sapi_name();
?>
- личный кабинет php (личный кабинет на php)
- Bitrix php admin (администрирование bitrix на php)
- Docker php (docker для php-приложений)

Расширенные примеры работы с информацией PHP

Пример 1: Использование всех флагов phpinfo()

Константы можно комбинировать через побитовое ИЛИ для выбора нужных разделов.

Пример
<?php
// Только общая информация и конфигурация
phpinfo(INFO_GENERAL | INFO_CONFIGURATION);

// Только модули и переменные
phpinfo(INFO_MODULES | INFO_VARIABLES);

// Вся информация
phpinfo(INFO_ALL);
?>

Результат: каждый вызов выводит HTML-таблицу с соответствующими разделами.

Пример 2: Сохранение phpinfo() в формате JSON

Можно преобразовать HTML-вывод в структурированные данные с помощью парсинга или получить ключевые параметры напрямую.

Пример
<?php
$info = [
    'version' => phpversion(),
    'memory_limit' => ini_get('memory_limit'),
    'extensions' => get_loaded_extensions(),
    'server_api' => php_sapi_name()
];
header('Content-Type: application/json');
echo json_encode($info, JSON_PRETTY_PRINT);
?>

Результат:

{
    "version": "8.2.12",
    "memory_limit": "128M",
    "extensions": ["Core", "date", "libxml", ...],
    "server_api": "Apache 2.0 Handler"
}

Пример 3: Получение информации через CLI с форматированием

Команда php -r позволяет выполнить код без отдельного скрипта.

Пример
php -r "phpinfo();" > /dev/null 2>&1 | head -20

Или используйте php -i с фильтрацией:

Пример
php -i | grep -E '^(PHP Version|Loaded Configuration|Server API)'

Пример вывода:

PHP Version => 8.2.12
Loaded Configuration File => /etc/php/8.2/cli/php.ini
Server API => Command Line Interface

Пример 4: Детальный анализ расширений через ReflectionExtension

Пример
<?php
$ext = new ReflectionExtension('mbstring');
echo 'Version: ' . $ext->getVersion() . "\n";
echo 'Classes: ' . implode(', ', $ext->getClassNames()) . "\n";
echo 'Functions: ' . implode(', ', $ext->getFunctions()) . "\n";
$deps = $ext->getDependencies();
echo 'Dependencies: ' . implode(', ', array_keys($deps)) . "\n";
?>

Результат может выглядеть так:

Version: 8.2.12
Classes: Mbstring
Functions: mb_strlen, mb_strpos, ...
Dependencies: none

Пример 5: Использование ini_get_all() с фильтрацией по разделу

Пример
<?php
$all = ini_get_all();
foreach ($all as $key => $value) {
    if (str_starts_with($key, 'session.')) {
        echo "$key = {$value['local_value']} (global: {$value['global_value']})\n";
    }
}
?>

Выведет все настройки, начинающиеся с session..

Пример 6: Получение информации о среде с php_uname() и sys_getloadavg()

Пример
<?php
echo 'Операционная система: ' . php_uname() . "\n";
$load = sys_getloadavg();
echo 'Нагрузка за 1 мин: ' . $load[0] . "\n";
echo 'Архитектура: ' . php_uname('m') . "\n";
?>

Результат:

Операционная система: Linux web01 5.15.0-91-generic #101-Ubuntu SMP ...
Нагрузка за 1 мин: 0.25
Архитектура: x86_64

Пример 7: Буферизация и парсинг phpinfo() для извлечения значения

Пример
<?php
ob_start();
phpinfo(INFO_GENERAL);
$html = ob_get_clean();
// Извлекаем значение 'PHP Version'
preg_match('/PHP Version.*>(\d+\.\d+\.\d+)</', $html, $matches);
echo 'Версия: ' . ($matches[1] ?? 'не найдено') . "\n";
?>

Этот метод полезен для автоматического сбора метрик.

Пример 8: Создание информационной страницы в стиле phpinfo() с дополнительными данными

Пример
<?php
function customInfo() {
    echo '<h3>Собранная информация</h3>';
    echo '<table border="1">';
    echo '<tr><td>PHP Version</td><td>' . phpversion() . '</td></tr>';
    echo '<tr><td>Server API</td><td>' . php_sapi_name() . '</td></tr>';
    echo '<tr><td>max_execution_time</td><td>' . ini_get('max_execution_time') . 's</td></tr>';
    echo '</table>';
}
customInfo();
?>

Результат — простая HTML-таблица с выбранными параметрами.

Получение информации о PHP - comments

En
Php info (php)