Где php ini
Файл конфигурации ( php.ini ) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.
- По месту расположения модуля SAPI ( PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI)
- Переменная среды PHPRC .
- Местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] . Для 32-разрядного PHP на 64-разрядной Windows [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] . Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x] . Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] , значение IniFilePath (только для Windows).
- Текущая директория (исключая CLI).
- Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
- В директории Windows ( C:\windows или C:\winnt ) (для Windows) или —with-config-file-path с выбором при компиляции.
Если файл php-SAPI.ini существует (где SAPI — это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini ), то он используется вместо php.ini . Тип интерфейса между веб-сервером и PHP может быть определён с помощью функции php_sapi_name() .
Замечание:
Веб-сервер Apache изменяет текущую директорию на корневую при запуске, в результате чего PHP считывает php.ini из корневой файловой системы, если файл существует.
В php.ini можно использовать переменные окружения, как показано ниже.
Пример #1 Переменные окружения php.ini
; PHP_MEMORY_LIMIT взята из переменных окружения memory_limit = $
Директивы php.ini , обрабатываемые модулями, описаны на соответствующих страницах модулей. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini . Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.
Пример #2 Пример php.ini
; любой текст в строке после точки с запятой (;) без кавычек игнорируется [php] ; маркеры разделов (текст в квадратных скобках) также игнорируется ; Могут быть установлены следующие логические значения: ; true, on, yes ; или false, off, no, none register_globals = off track_errors = yes ; вы можете заключать строки в двойные кавычки include_path = ".:/usr/local/lib/php" ; обратный слеш обрабатывается так же, как любые другие символы include_path = ".;c:\php\lib"
Возможно обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = $ «:/new/dir» .
Сканирование директорий
Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini . Это можно сделать на моменте компиляции, указав опцию —with-config-file-scan-dir. Сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR .
Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе ( ; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATOR , которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью —with-config-file-scan-dir.
В каждой директории PHP сканирует все файлы заканчивающиеся на .ini в алфавитном порядке. Список всех загруженных файлов в том порядке, в котором они были загружены, доступен с помощью функции php_ini_scanned_files() , либо при запуске PHP с опцией —ini.
Допустим, что PHP сконфигурирован с --with-config-file-scan-dir=/etc/php.d, и разделитель путей . $ php PHP загрузит все файлы /etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php PHP загрузит все файлы /usr/local/etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php PHP загрузит все файлы /etc/php.d/*.ini, а потом /usr/local/etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php PHP загрузит все файлы /usr/local/etc/php.d/*.ini, а потом /etc/php.d/*.ini как конфигурационные.
Настройка файла php.ini
В статье мы рассмотрим основные директивы, которые могут пригодиться, чтобы настроить php.ini.
php.ini — это конфигурационный файл PHP. Синтаксис настроек этого файла прост:
Имя_настройки = Значение_параметра
Параметры чувствительны к регистру. Строки, которые начинаются с точки с запятой (;), игнорируются.
Обратите внимание
Чтобы избежать ошибок, не добавляйте новые строки. Ищите уже существующие и изменяйте значения на нужные.
Где найти файл php.ini
Путь к файлу php.ini отличается в зависимости от вашей панели управления:
- Ispmanager:
- Для всех доменов: /var/www/php-bin-phpX.X/php.ini. Вместо X.X укажите вашу версию PHP;
- Для отдельного домена: /var/www/php-bin/test.ru/php.ini. Вместо test.ru укажите имя вашего домена.
О том, как открыть файл php.ini, читайте в статье.
Директивы для настройки использования ресурсов
Чтобы сервер не перегружался и мог нормально работать, в PHP устанавливаются ограничения для использующихся ресурсов. Иногда стандартные параметры не подходят для проекта и нужно сделать изменение php.ini.
- Время выполнения скрипта. По умолчанию максимальное время выполнения скрипта ― 30 секунд. Чтобы установить другое, введите:
max_execution_time = 60Где 60 ― количество секунд выполнения скрипта.
Если указать 0, скрипт будет выполняться бесконечно.
- Максимальное время (в секундах), которое может потратить скрипт для обработки загружаемых данных. Для этого используйте директиву:
max_input_time = 30- Объем памяти для одного скрипта (в МБ). Чтобы установить максимальный размер памяти, который может использовать один скрипт, введите:
memory_limit = 128mГде 128 ― максимальный объём памяти в MБ.
- Максимальный объём памяти, который может использовать один скрипт во время своего выполнения. Чтобы настроить, введите:
memory_limit = 128MГде 128 ― объем памяти в МБ.
- Максимальное количество переменных в GET и POST. Для этого введите директиву:
max_input_vars = 1000Где 1000 ― количество переменных.
- Максимальный размер данных, который передаётся в POST-запросе. По умолчанию выставлен параметр ― 8 МБ. Чтобы его изменить, введите:
post_max_size = 9MГде 9 ― максимальное количество МБ.
- Ограничение области действия PHP в системе. Можно указать папку, выше которой скрипт не может получить доступ к файловой системе:
open_basedir = /var/www/Где /var/www/ ― ограничивающая папка.
Директивы для вывода ошибок
По умолчанию во время выполнения скрипта функция вывода ошибок на экран отключена. Поэтому, чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Для этого введите:
display_errors = OnВ PHP есть разные виды ошибок: критические, ошибки синтаксиса и другие. Можно включить вывод только важных для вас типов ошибок. Для этого введите:
error_reporting = E_ALLГде E_ALL ― вид ошибки, например E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR , E_USER_WARNING, E_USER_NOTICE.
Чтобы объединить несколько типов ошибок, используйте символ &. Например:
error_reporting = E_ALL & ~E_WARNINGЧтобы включить запись PHP-ошибок в лог, введите:
log_errors = OnЕсли есть повторяющиеся ошибки в рамках одного исполнения, их можно игнорировать. Для этого введите:
ignore_repeated_errors = OnДирективы для загрузки файлов
Часто нужно дать возможность пользователю загружать свои файлы на сервер (фото, документы, музыку). Чтобы включить эту функцию нужна настройка php.ini. Введите:
file_uploads = OnЕсли вы, наоборот, хотите запретить загрузку файлов, введите:
file_uploads = OffЕсли нужно установить максимальный размер загружаемого файла (в МБ), введите:
upload_max_filesize = 2MЕсли нужно установить максимальное количество файлов, которое может загрузить один скрипт, введите:
max_file_uploads = 20Директивы для обработки данных
Чтобы установить порядок регистрации переменных, введите:
variables_order = "GEPSC"Где GEPSC ― нужная вам последовательность.
- GET ― G,
- POST ― P,
- Cookie ― C,
- Environment ― E
- Server ― S.
Чтобы разрешить или запретить создание переменных argv и argc на основе информации, полученной методом GET, введите:
register_argc_argv = Onregister_argc_argv = OffЧтобы включить или отключить автоматическую обработку кавычек и апострофов в GET, POST и Cookie, введите:
magic_quotes_gpc = OnКак найти файл php.ini на сервере
Рекомендуемый хостинг:
Самый простой способ — выполнить в консоли:
php -i | grep "Loaded Configuration File"
Но в некоторых случаях надежнее разместить в папке сайта файл с именем test.php (или любым другим — значения не имеет) с вот таким содержимым:
и открыв в браузере по адресу имясайта.com/test.php посмотреть значение строки «Loaded Configuration File»
©2023 · CheerApp HTML template by Mateusz Hajdziony
Изменение параметров PHP — директив php.ini
В разделе Параметры модуля PHP панели управления хостингом размещена таблица с изменяемыми параметрами. Установите необходимые значения в соответствии с требованиями скриптов сайта и сохраните изменения.

Ручное редактирование php.ini
Для редактирования файла php.ini необходимо:
- загрузить на ваш компьютер файл php.ini, соответствующий вашей версии PHP, из директории /etc/php/version, например, с помощью файлового менеджера панели управления ;
- загрузить отредактированную версию файла php.ini в домашнюю директорию /home/идентификатор;
- перейти в раздел Управление веб-серверомпанели управления хостингом и выполнить перезапуск сервера, чтобы изменения вступили в силу.
При использовании собственного php.ini настройки PHP из панели управления хостингом работать не будут. Чтобы вернуться к автоматическим настройкам, нужно удалить php.ini из директории/home/идентификатор/ и перезапустить веб-сервер.
Для отдельных сайтов параметры PHP можно задать с помощью файла .htaccess и директив php_flag, php_value в соответствии с документацией PHP.
