phpinfo как вывести и настроить PHP

Если вы вводите запрос «phpinfo как вывести», используйте функцию phpinfo(): она показывает настройки PHP и путь к загруженному php.ini. Измените нужные параметры в этом файле, затем перезапустите PHP-FPM или Apache.

Для командной строки перезапуск не нужен. Вы научитесь находить конфигурацию сайта, менять лимиты памяти и загрузки файлов, проверять результат и возвращать прежние настройки.

phpinfo(): получить информацию о PHP

Функция phpinfo() выводит сведения о PHP, расширениях и настройках окружения. Если вы ищете «phpinfo как вывести», создайте файл info.php в каталоге сайта. Разместите в нем вызов этой функции:

<?php
// info.php
phpinfo();

Откройте /info.php на своем домене через браузер. Если сервер выполняет PHP, вы увидите страницу с таблицами конфигурации. Если браузер скачивает файл или показывает исходный код, сначала настройте обработку PHP.

Не оставляйте info.php в открытом доступе. Страница раскрывает пути, версии компонентов и другие сведения о сервере. Ограничьте доступ к ней на время диагностики. После проверки удалите файл и убедитесь, что страница больше недоступна.

В терминале сервера информацию можно получить без отдельного файла:

php -i

Та же функция доступна через запуск PHP-кода в консоли:

php -r "phpinfo();"

Обе команды показывают конфигурацию CLI – PHP для командной строки. Настройки сайта, который обслуживает PHP-FPM или модуль Apache, могут отличаться.

Где в phpinfo() искать путь к php.ini

Найдите строку Loaded Configuration File через поиск браузера. Она сообщает, какой основной файл конфигурации загрузил PHP. Для изменения настроек сайта ориентируйтесь на вывод именно этого сайта.

  • Server API показывает способ запуска PHP. Значение FPM/FastCGI указывает на PHP-FPM, Apache 2.0 Handler – на модуль Apache.
  • Loaded Configuration File содержит путь к загруженному php.ini. Значение (none) означает, что основной файл не загружен.
  • Scan this dir for additional .ini files показывает каталог дополнительных настроек, часто conf.d.
  • Additional .ini files parsed перечисляет дополнительные файлы, которые PHP прочитал после основной конфигурации.

Строка Configuration File (php.ini) Path обозначает место поиска конфигурации. Не путайте ее с путем к фактически загруженному файлу.

Без браузера выполните команду поиска конфигурации CLI:

php --ini

Команда покажет основной php.ini, каталог сканирования и дополнительные INI-файлы. Она не определяет конфигурацию PHP-FPM, обслуживающего ваш сайт.

У CLI и PHP-FPM часто разные файлы php.ini. В пакетных установках PHP 8.x на Debian и Ubuntu встречаются следующие пути:

ОкружениеПуть к php.ini
Debian/Ubuntu, PHP-FPM/etc/php/8.x/fpm/php.ini
Debian/Ubuntu, CLI/etc/php/8.x/cli/php.ini

Символ x обозначает младший номер установленной версии, его нужно заменить. Используйте путь из Loaded Configuration File, даже если он отличается от примера. Сторонние сборки и контейнеры могут хранить конфигурацию в другом каталоге.

Настройка PHP: как работает php.ini

PHP хранит основные настройки в текстовом файле формата INI. Каждая директива занимает отдельную строку и получает значение после знака равенства:

implicit_flush = Off
serialize_precision = 17
memory_limit = 256M

Точка с запятой в начале строки обозначает комментарий. Закомментированная директива не меняет настройку:

; Maximum amount of memory a script may consume (128MB)
; memory_limit = 128M
memory_limit = 256M

Активная строка memory_limit = 256M разрешает скрипту использовать до 256 МБ памяти. Значение 128M в комментарии показывает значение по умолчанию, а строка с точкой с запятой на настройку не влияет.

Если вы закомментируете директиву, PHP не обязательно вернется к встроенному значению. Настройку может задавать другой INI-файл или конфигурация сайта. Порядок загрузки описывает документация PHP о конфигурационном файле.

Значения параметров конфигурации PHP, полезные для WordPress-разработчиков

При настройке WordPress часто меняют четыре параметра. Они ограничивают время выполнения, память и объем загружаемых данных. Значения в таблице – ориентир для проекта, а не обязательные требования WordPress.

ПараметрЗначение по умолчаниюТипичное значение для WordPressЧто ограничивает
max_execution_time30 секунд60 секундВремя выполнения скрипта
memory_limit128M256MПамять, которую может выделить скрипт
upload_max_filesize2M32MРазмер одного загружаемого файла
post_max_size8M40MОбщий размер тела POST-запроса

Фактические значения вашего сайта показывает phpinfo(). Описание директив доступно в документации основных настроек PHP и настроек времени выполнения.

Значение post_max_size должно быть не меньше upload_max_filesize. Оставляйте запас для остальных полей формы и служебных данных. Поэтому в примере файл ограничен 32 МБ, а весь запрос – 40 МБ.

max_execution_time = 60
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 40M

Не повышайте все лимиты без причины. Увеличение памяти для одного скрипта повышает возможный расход ресурсов при одновременных запросах. Дополнительные ограничения могут задавать веб-сервер, PHP-FPM и само приложение.

Как отредактировать php.ini и перезапустить обработчик

Для изменения серверного php.ini обычно нужны административные права. Команда sudo запускает действие с повышенными правами, если ваша учетная запись это разрешает. На сервере с systemd используйте следующий порядок.

Сохраните копию и измените параметры

В терминале задайте переменную с путем из Loaded Configuration File. В примере замените 8.x своей версией PHP:

INI='/etc/php/8.x/fpm/php.ini'
sudo cp -p "$INI" "$INI.before-change"
sudo nano "$INI"

Команда копирования сохраняет исходный файл рядом с рабочим. Если копия с таким именем уже существует, выберите другое имя, чтобы не затереть предыдущую резервную копию.

  1. Найдите memory_limit поиском редактора: в nano нажмите Ctrl+W и введите имя директивы.
  2. Замените значение активной строки на 256M. Перед директивой не должно быть точки с запятой.
  3. При необходимости измените остальные параметры по примеру конфигурации.
  4. Сохраните файл сочетанием Ctrl+O, подтвердите имя клавишей Enter. Выйдите из редактора через Ctrl+X.

Перезапустите PHP-FPM или Apache

Перезапуск может прервать выполняющиеся запросы. На рабочем сайте выберите период с небольшой нагрузкой. Выберите обработчик по строке Server API.

Для PHP-FPM сначала получите имена установленных служб:

systemctl list-unit-files --type=service | grep -Ei 'php.*fpm'

Сопоставьте версию в имени службы с версией PHP на странице phpinfo(). Если установлено несколько версий, выбирайте службу, которая обслуживает ваш сайт. Для юнита вида php8.x-fpm.service команда выглядит так:

sudo systemctl restart php8.x-fpm
systemctl status php8.x-fpm --no-pager

Замените php8.x-fpm точным именем из списка. Если служба называется php-fpm.service, используйте php-fpm. После успешного запуска статус содержит active (running).

Если сайт использует модуль PHP для Apache, перезапустите только Apache. Для службы apache2 выполните:

sudo systemctl restart apache2
systemctl status apache2 --no-pager

Если Apache зарегистрирован под именем httpd, команды будут другими:

sudo systemctl restart httpd
systemctl status httpd --no-pager

При связке Apache с PHP-FPM изменение php.ini требует перезапуска PHP-FPM. Перезапуск только Apache не заставит уже работающие процессы FPM перечитать конфигурацию. Для CLI достаточно запустить PHP заново.

Проверьте значения и при необходимости выполните откат

Повторно откройте страницу info.php в браузере. Сначала сверьте Loaded Configuration File с отредактированным путем. Затем найдите memory_limit: после применения примера значение Local Value должно составлять 256M.

Колонка Master Value показывает базовое значение директивы. Колонка Local Value показывает значение для текущего запроса. Если они различаются, настройку переопределяет конфигурация сайта или выполняемый код.

Для CLI проверьте путь и лимит отдельными командами:

php --ini
php -i | grep memory_limit

После установки лимита 256M в конфигурации CLI строка содержит memory_limit => 256M => 256M. Этот результат не подтверждает изменение настроек веб-сайта.

Если лимит не изменился, просмотрите дополнительные INI-файлы из phpinfo(). Также проверьте настройки пула FPM, .user.ini и конфигурацию приложения. Повторное объявление директивы может перекрывать запись в основном файле.

Чтобы вернуть исходную конфигурацию, восстановите сохраненную копию:

sudo cp -p "$INI.before-change" "$INI"

Перезапустите тот же обработчик и снова откройте сайт. Если служба не запускается, подробности ошибки покажет ее статус. После завершения диагностики удалите info.php.

Как изменить настройки на виртуальном хостинге

Без доступа к общему php.ini используйте настройки отдельного сайта. Начните с панели хостинга: найдите параметры PHP для нужного домена. Ищите поля по именам директив, например memory_limit, задайте значение и сохраните изменения.

Если панель не позволяет менять нужный параметр, способ зависит от обработчика PHP.

СпособГде применяетсяОсновное ограничение
Панель хостингаНастройки PHP выбранного сайтаНабор доступных директив определяет хостинг
.user.iniCGI/FastCGIОбработка файла должна быть разрешена
php_value в .htaccessМодуль PHP для ApacheApache должен разрешать такие переопределения
ini_set()Код выполняемого скриптаМеняет только разрешенные во время выполнения директивы

Для CGI/FastCGI создайте файл .user.ini в корневом каталоге сайта. Запишите в него нужные директивы в обычном INI-формате:

memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 40M

PHP кеширует пользовательские INI-файлы, поэтому изменение может примениться с задержкой. Обновите info.php после перечитывания конфигурации и проверьте Local Value. Особенности описывает документация .user.ini.

Для PHP как модуля Apache добавьте директиву в существующий .htaccess:

php_value memory_limit 256M

Внутри скрипта лимит памяти можно изменить до ресурсоемкой операции:

<?php
ini_set('memory_limit', '256M');
echo ini_get('memory_limit');

Если настройка разрешена, скрипт выведет 256M. Функция ini_set() действует в пределах текущего выполнения. Она не подходит для изменения upload_max_filesize и post_max_size: PHP обрабатывает входящий запрос до запуска скрипта.

Административные ограничения хостинга могут запрещать переопределение параметров. После эксперимента удалите тестовый код. Для отката .user.ini или .htaccess удалите добавленные директивы либо восстановите предварительно сохраненную копию файла.

Порядок безопасного изменения конфигурации PHP

  1. Определите обработчик сайта и загруженный php.ini через phpinfo(). Для консольного скрипта используйте php --ini.
  2. Сохраните копию конфигурации и измените нужные директивы.
  3. Перезапустите PHP-FPM или Apache с mod_php. Консольный скрипт запустите повторно.
  4. Проверьте путь конфигурации и фактическое значение параметра в нужном окружении.
  5. Повторите действие, ради которого меняли лимит: загрузку файла или запуск задачи.
  6. Удалите диагностический info.php после завершения проверки.

Сохраните копию конфигурации перед изменением. Так вы быстро вернете рабочие значения при ошибке.

Комментарии

Оставьте свой комментарий
Пока никто не оставил комментариев