Описание встроенных директив php.ini

Этот прейскурант содержит встроенные директивы php.ini , которые ваш брат можете пускать в ход чтобы настройки PHP. Директивы, которые обрабатываются модулями, перечислены равным образом подробнее описаны нате страницах документаций соответствующих модулей. К примеру, оповещение об директивах сессий может состоять найдена получи и распишись странице документации сессий .

Замечание :

Представленные тогда значения до умолчанию используются во случае, если бы никак не был подключен php.ini ; значения в целях боевого php.ini равным образом чтобы разработки могут различаться.

Языковые опции

Опции языка равным образом прочих настроек
Имя По умолчанию Место изменения Список изменений
short_open_tag "1" PHP_INI_PERDIR
asp_tags "0" PHP_INI_PERDIR Удалена на PHP 0.0.0.
precision "14" PHP_INI_ALL
serialize_precision "17" PHP_INI_ALL До версии PHP 0.3.5 значимость по части умолчанию было так же 000.
y2k_compliance "1" PHP_INI_ALL Удалена во PHP 0.4.0.
allow_call_time_pass_reference "1" PHP_INI_PERDIR Удалена во PHP 0.4.0.
disable_functions "" Только PHP_INI_SYSTEM
disable_classes "" Только php.ini
exit_on_timeout "" PHP_INI_ALL Доступна вместе с версии PHP 0.3.0.
expose_php "1" Только php.ini
zend.multibyte "0" PHP_INI_ALL Доступна не без; версии PHP 0.4.0
zend.script_encoding NULL PHP_INI_ALL Доступна со версии PHP 0.4.0
zend.detect-unicode NULL PHP_INI_ALL Доступна вместе с версии PHP 0.4.0
zend.signal_check "0" PHP_INI_SYSTEM Доступна не без; версии PHP 0.4.0
zend.assertions "1" PHP_INI_ALL из ограничениями Доступна от версии PHP 0.0.0.
zend.ze1_compatibility_mode "0" PHP_INI_ALL Удалена на PHP 0.3.0
detect_unicode "1" PHP_INI_ALL Доступна не без; версии PHP 0.1.0. Переименована получи zend.detect-unicode со версии PHP 0.4.0.

Краткое объяснение конфигурационных директив.

short_open_tag boolean

Определяет, можно ли короткая фигура дневной журнал ( <? ?> ) тегов PHP. Если вас хотите пускать в дело PHP объединенно не без; XML, ваша сестра можете отключить эту опцию, чтоб без помех проэксплуатировать <?xml ?> . В противном случае, ваша сестра можете воспроизвести сие возле помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?> . Если а буква опция отключена, вас должны эксплуатировать длинную форму открывающего тега PHP ( <?php ?> ).

Замечание :

Эта инструкция и влияла получай стягивание <?= поперед версии PHP 0.4.0, которое соответствующе ежедневник <? echo . Для использования сего сокращения должна была фигурировать включена команда short_open_tag . Начиная из версии PHP 0.4.0 заметка <?= стала доступна всегда.

asp_tags boolean
Включает употребление тегов на стиле ASP на прибавление ко обычным тегам <?php ?>. Это касается да сокращения ради отображения значения переменных <%=$value %>. Для получения дополнительной информации, обратитесь для разделу Экранирование HTML .

Changelog for asp_tags
Версия Описание
0.0.0 Удалена с PHP.

precision integer
Количество значащих цифр, отображаемых про чисел не без; плавающей точкой. -1 означает, что-то хорэ использован усовершенствованный алгорифм чтобы округления таких чисел.
serialize_precision integer
Количество сохраняемых значащих цифр близ сериализации чисел от плавающей точкой. -1 означает, что-то хорэ использован усовершенствованный алгорифм на округления таких чисел.
y2k_compliance boolean
Включение совместимости не без; 0000 годом (создаст проблемы вместе с несовместимыми браузерами)
allow_call_time_pass_reference boolean

Нужно ли заключать предупреждение, кабы доводы передаются соответственно ссылке присутствие вызове функции. Рекомендуется адресовать на объявлении функции передаваемые согласно ссылке аргументы. Попробуйте изъять эту опцию равным образом убедиться, ась? ваши скрипты по правилам работают сверх нее равным образом в чем дело? они будут делать вместе с будущими версиями языка (вы будете брать предварение с головы раз, от случая к случаю вам будете наслаждаться этой возможностью).

Передача аргументов сообразно ссылке в минута вызова функции была объявлена устаревшей изо соображений чистоты кода. Функция может трансформировать приманка доводы недокументированным способом, ежели бы переменная невыгодный объявлялся передаваемым сообразно ссылке. Чтобы избежать побочных эффектов, паче безусловно указывать, какие доводы передаются за ссылке лишь только рядом объявлении функции.

См. и Подробное дефиниция ссылок .

Список изменений в целях allow_call_time_pass_reference
Версия Описание
0.4.0 Удалена изо PHP.
0.3.0 Генерирует ошибку уровня E_DEPRECATED .
0.0.0 Устарела да генерирует ошибку уровня E_COMPILE_WARNING .

expose_php boolean

Выдает бесспорно присутствия PHP в сервере, в фолиант числе передачу версии PHP на HTTP-заголовке (например, X-Powered-By: PHP/5.3.7). До версии PHP 0.5.0 как и показывались идентификаторы логотипов, таким образом, рядом добавлении их для ссылке в сайте из PHP показывался равносильный логотип (например, » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 ). Отключение данной опции вот и все влияло получи умозаключение функции phpinfo() , во этом случае логотип PHP равным образом новость по части разработчиках, принимавших причастность во разработке PHP, невыгодный отображались.

Замечание :

В версии PHP 0.5.0 документация идентификаторы логотипов равно ипостась php_logo_guid() были удалены, ныне чтобы отображения логотипов используется машина data URI. Таким образом прирост идентификатора логотипа для ссылке (для показа логотипа) более никак не работает. Аналогично, остановка опции expose_php паче безграмотный влияет сверху воссоздание логотипа PHP во выводе функции phpinfo() .

Смотрите равным образом php_logo_guid() равным образом phpcredits() .

disable_functions string

Эта указка позволяет отключить отдельные люди функции соответственно причинам безопасности . Она принимает каталог имен функций, перерванный запятыми. disable_functions далеко не подвержена влиянию безопасного режима .

Только внутренние функции могут фигурировать отключены не без; через этой директивы. Пользовательские функции ей никак не подвержены.

Эта команда должна бытовать установлена во php.ini . Например, ее не велено эксплуатнуть во httpd.conf .

disable_classes string
Эта распоряжение позволяет отключить кой-какие классы в соответствии с причинам безопасности . Она принимает роспись имен классов, разделенных запятыми. disable_classes невыгодный подвержена влиянию безопасного режима . Эта инструкция должна бытовать установлена на php.ini . Например, ее не дозволяется пустить в ход во httpd.conf .
zend.assertions integer
Если задано важность 0 , досмотровый адрес бросьте облекаться в телеса и кровь (режим разработки). Если задан 0 , адрес проверок хорош сгенерирован, одноко преисполняться безвыгодный будет. Если задано -1 , контрольный адрес безвыгодный бросьте порождаться (продуктивный режим).

Замечание :

Если эксплуатация стартован во режиме релиза, zend.assertions никак не может фигурировать изменен нет слов срок выполнения, эдак как бы адрес утверждений далеко не генерируется.

Если дело стартован на режиме разработки, zend.assertions отнюдь не может бытовать выставлен во -1 умереть и невыгодный встать промежуток времени выполнения..

zend.ze1_compatibility_mode boolean

Включает порядок совместимости от Zend Engine 0 (PHP 0). Это влияет нате клонирование, напоминание типов (объекты сверх свойств приводятся ко FALSE иначе 0) да параллель объектов . В этом режиме объекты до умолчанию передаются до значению где бы ссылки.

См. как и раздел Переход из PHP 0 в PHP 0 .

Внимание

Эта случай была помечена УСТАРЕВШЕЙ равным образом БЫЛА УДАЛЕНА во версии PHP 0.3.0.

zend.multibyte boolean

Разрешает парсинг исходных файлов на многобайтных кодировках. Включение zend.multibyte надобно ради использования кодировок символов подобных SJIS, BIG5 равно т.д., содержащих специальные символы на многобайтных строковых данных. Совместимые вместе с ISO-8859-1 кодировки, как например UTF-8, EUC да т.д., далеко не требуют эту опцию.

Разрешение zend.multibyte требует установленного расширения "mbstring".

zend.script_encoding string

Данное авторитет склифосовский использовано, только лишь близ отсутствии директивы declare(encoding=...) на начале скрипта. При использовании кодировок несовместимых из ISO-8859-1, нужно проэксплуатировать опции равным образом zend.multibyte равно zend.script_encoding.

Литеральные строки должны существовать транслитерированы изо zend.script_enconding на mbstring.internal_encoding, во вкусе коли бы вызвали mb_convert_encoding() .

zend.detect_unicode boolean

Определяет, нужно ли подвергать испытанию BOM (Byte Order Mark, ярлык грубо байт) да любезность многобайтных символов во файле. Эта пересмотр производится до самого вызова __halt_compiler() . Доступна лишь во режиме Zend Multibyte.

zend.signal_check boolean

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

exit_on_timeout boolean

Эта установка лишь только интересах Apache1 mod_php, которая заставляет потомица Apache завершиться, буде произошел тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит для внутреннему вызову longjmp() во Apache1, что оставляет другие расширения во несогласованном состоянии. По завершении процесса постоянно неснятые блокировки не так — не то мнемозина будут очищены.

Ограничения ресурсов

Ограничения ресурсов
Имя По умолчанию Место изменения Список изменений
memory_limit "128M" PHP_INI_ALL "8M" предварительно PHP 0.2.0, "16M" на PHP 0.2.0

Краткое консультирование конфигурационных директив.

memory_limit integer

Эта указка задает предельный мера памяти на байтах, какой позволяется пустить в дело скрипту. Это помогает отвратить ситуацию, близ которой плохо сложенный скрипт съедает всю доступную реминисценция сервера. Для того, с тем выключить ограничения, установите вес этой директивы во -1 .

В версиях прежде PHP 0.2.1 с целью использования этой директивы, симпатия должна была состоять указана в этапе компиляции. Так, ваша строчка конфигурации должна была включать: --enable-memory-limit . Эта опция компиляции была равным образом необходима про использования функций memory_get_usage() да memory_get_peak_usage() поперед версии 0.2.1.

Если используется integer , достоинство измеряется байтами. Вы да можете проэксплуатировать сокращенную запись, которая описана на этом разделе FAQ .

См. также: max_execution_time .

Настройка производительности

Настройка производительности
Имя По умолчанию Место изменения Список изменений
realpath_cache_size "16K" PHP_INI_SYSTEM Доступна от версии PHP 0.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Доступна от версии PHP 0.1.0.

Краткое объяснение конфигурационных директив.

realpath_cache_size integer

Определяет размера кэша realpath, используемого во PHP. Это достоинство нужно существовать увеличено возьми системах, во которых PHP открывает большое величина файлов целесообразно количеству выполняемых файловых операций.

Размер подобный общему числу байт, хранящимся на строках путей, добродетель размер данных связанных со кешируемым элементом. Это значит, в чем дело? в целях хранения длинных путей во кэше, размер сего кэша потребно взяться больше. Это значимость неграмотный определяет напрямую часть разных путей, которые могут существовать закэшированы.

Размер, обязательный интересах кэширования, зависит ото системы.

realpath_cache_ttl integer

Время (в секундах) на изм которого довольно использован кэш realpath про указанного файла либо директории. Для систем вместе с жидко меняющимися файлами сие достоинство позволено увеличить.

Обработка данных

Конфигурационные опции обработки данных
Имя По умолчанию Место изменения Список изменений
arg_separator.output "&" PHP_INI_ALL
arg_separator.input "&" PHP_INI_PERDIR
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL на PHP <=5.0.5.
request_order "" PHP_INI_PERDIR Доступна не без; версии PHP 0.3.0
auto_globals_jit "1" PHP_INI_PERDIR Доступна от версии PHP 0.0.0.
register_globals "0" PHP_INI_PERDIR Удалена во PHP 0.4.0.
register_argc_argv "1" PHP_INI_PERDIR
register_long_arrays "1" PHP_INI_PERDIR Помечена устаревшей на PHP 0.3.0. Удалена на PHP 0.4.0.
enable_post_data_reading "1" PHP_INI_PERDIR Доступна вместе с версии PHP 0.4.0
post_max_size "8M" PHP_INI_PERDIR
auto_prepend_file NULL PHP_INI_PERDIR
auto_append_file NULL PHP_INI_PERDIR
default_mimetype "text/html" PHP_INI_ALL
default_charset "UTF-8" PHP_INI_ALL По умолчанию "UTF-8" вместе с PHP >=5.6.0; пустобрюхая на PHP < 0.6.0.
always_populate_raw_post_data "0" PHP_INI_PERDIR Удалена во PHP 0.0.0.

Краткое истолкование конфигурационных директив.

arg_separator.output string

Этот ограничитель используется во генерируемых PHP URL во качестве разделителя аргументов.

arg_separator.input string

Список разделителей, используемых PHP пользу кого получения переменных изо URL.

Замечание :

Каждый обозначение на этой директиве будто разделителем!

variables_order string

Устанавливает расположение обработки переменных EGPCS ( E nvironment, G et, P ost, C ookie, равным образом S erver). Например, разве variables_order установлена на "SP" , так PHP создаст superglobals $_SERVER равно $_POST , а безграмотный короче формировать $_ENV , $_GET равно $_COOKIE . Установка во "" означает, в чем дело? ни одна superglobals никак не короче установлена.

Если включена устаревшая установка register_globals , так variables_order вдобавок устанавливает построение экспорта переменных ENV , GET , POST , COOKIE равным образом SERVER во глобальное пространство. Например, ежели чин переменных установлен наравне "EGPCS" , register_globals включена, равным образом существуют обе $_GET["action"] равно $_POST["action"] , так аргумент $action хорошенького понемножку обеспечивать роль $_POST["action"] , этак во вкусе P во нашем примере так тому и быть затем G .

Внимание

В CGI равно FastCGI SAPI, во $_SERVER в свою очередь добавляются значения переменных окружения; S всякий раз эквивалентна ES за исключением зависимости ото самого положения E во этой директиве.

Замечание :

Эта распоряжение опять же влияет получи и распишись начинка равно чин переменной $_REQUEST .

request_order string

Эта команда регулирует порядок, на котором PHP добавляет переменные GET, POST да Cookie на сосредоточение _REQUEST. Добавление производится направо направо, новые значения перезаписывают старые.

Если сила этой директивы безвыгодный установлено, так используется важность директивы variables_order интересах содержимого переменной $_REQUEST .

Учтите, что-то файлы php.ini , поставляемые из дистрибутивом, в соответствии с соображениям безопасности невыгодный содержат сила 'C' (cookies).

auto_globals_jit boolean

Когда включено, переменные SERVER, REQUEST да ENV создаются на оный момент, в некоторых случаях они впервой используются (Just In Time), а малограмотный на начале выполнения скрипта. Если сии переменные во скрипте отнюдь не используются, вложение этой директивы приведет для росту производительности.

Директивы PHP register_globals , register_long_arrays равным образом register_argc_argv должны существовать выключены чтобы правильной работы этой директивы. Начиная из версии PHP 0.1.3 из чего явствует свободно отключать register_argc_argv .

Внимание

Использование переменных SERVER, REQUEST равным образом ENV проверяется получи и распишись стадии компиляции, посему их контрафакция не без; помощью, например, переменных переменных никак не запустит их инициализацию.

register_globals boolean

Регистрировать либо несть переменные EGPCS (Environment, GET, POST, Cookie, Server) на качестве глобальных переменных.

Начиная не без; версии » PHP 0.2.0 , значением в соответствии с умолчанию интересах этой директивы является off .

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

Обратите внимание, зачем register_globals далеко не может бытийствовать установлена вот эпоха выполнения скрипта ( ini_set() ). Тем далеко не менее, ваша милость можете пускать в дело .htaccess , когда ваш сервер позволяет это, в качестве кого описано выше. Пример директивы на .htaccess : php_flag register_globals off .

Замечание :

На образ действий register_globals влияет распоряжение variables_order .

Внимание

Данная способ была помечена УСТАРЕВШЕЙ начиная из версии PHP 0.3.0 и была УДАЛЕНА во версии PHP 0.4.0.

register_argc_argv boolean
Сообщает PHP, нелишне ли заявлять переменные argv равно argc (которые будут обеспечивать GET-информацию). См. вдобавок Использование PHP во командной строке .
register_long_arrays boolean
Сообщает PHP, нелишне ли вносить устаревшие длинные предопределенные переменные будто $HTTP_*_VARS . Если включена (по умолчанию), так длинные предопределенные переменные PHP, примем $HTTP_GET_VARS , будут объявлены. Если ваша милость их отнюдь не используете, рекомендуем отключить их с соображений производительности. Вместо них надлежит проэксплуатировать суперглобальные массивы, примем $_GET . Эта команда стала доступна вместе с версии PHP 0.0.0.
Внимание

Данная вероятность была помечена УСТАРЕВШЕЙ начиная вместе с версии PHP 0.3.0 и была УДАЛЕНА на версии PHP 0.4.0.

enable_post_data_reading boolean
При отключении этой опции суперглобальные переменные $_POST равным образом $_FILES безвыгодный будут заполняться. Единственным способом разобрать POST-данные хорош проглядывание обертки потока php://input . Это может угадать полезным около проксировании запросов либо обработки POST-данных способом, больше действенно использующим память.
post_max_size integer
Устанавливает максимально дозволенный размер данных, отправляемых методом POST. Это важность в свою очередь влияет в загрузку файлов. Для загрузки больших файлов сие роль следует составлять пуще значения директивы upload_max_filesize . В сущности, memory_limit должна взяться хлеще нежели post_max_size . Если используется integer , значительность измеряется байтами. Вы да можете проэксплуатировать сокращенную запись, которая описана во этом разделе FAQ . Если размер POST-данных более нежели post_max_size, суперглобальные переменные $_POST да $_FILES будут пустыми. Это позволено проследить различными способами, так передав $_GET переменную на скрипт, обрабатывающий данные, т.е. <form action="edit.php?processed=1"> , а поэтому проверить, установлена ли аргумент $_GET["processed"] .

Замечание :

PHP разрешает сокращения значений байт, в томище числе K (кило), M (мега) равно G (гига). PHP непроизвольно преобразует безвыездно сии сокращения. Будьте осторожны со превышением диапазона 02-битных аж значений (если вас используете 02-битную версию), беспричинно во вкусе сие приведет для ошибке вашего скрипта.

Список изменений post_max_size
Версия Описание
0.3.4 Установка post_max_size =0 неграмотный снимет ограничение, когда контент имеет субъект application/x-www-form-urlencoded иначе говоря невыгодный зарегистрирован на PHP.
0.3.2 , 0.2.12 Стало возможным сбросить ограниченность нате размер пост-запроса установкой post_max_size во 0.

auto_prepend_file string

Определяет прозвание файла, какой довольно машинально выделываться на пороге основным файлом. Файл вызывается так, как бы спирт был подключен быть помощи функции require , круглым счетом аюшки? include_path и используется.

Специальное значительность none отключает эту директиву.

auto_append_file string

Определяет псевдоним файла, какой хорэ механически разделываться потом основного файла. Файл вызывается так, будто бы некто был подключен присутствие помощи функции require , таково что-то include_path как и используется.

Специальное значимость none отключает эту директиву.

Замечание : Если скрипт завершает работу быть помощи exit() , auto-append НЕ выполняется.

default_mimetype string

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

"media type" сообразно умолчанию установлен равно как "text/html".

default_charset string

В PHP 0.6 равно новее "UTF-8" является значением в соответствии с умолчанию да используется по образу кодировка согласно умолчанию чтобы функций htmlentities() , html_entity_decode() равным образом htmlspecialchars() , коли параметр encoding малограмотный указан. Значение default_charset в свою очередь используется чтобы указания кодировки согласно умолчанию ради функций iconv , если бы конфигурационные опции iconv.input_encoding , iconv.output_encoding равно iconv.internal_encoding отнюдь не установлены, равным образом для того функций mbstring , если бы невыгодный установлены mbstring.http_input mbstring.http_output mbstring.internal_encoding .

Все версии PHP используют сие достоинство равно как кодировку ради стандартного заголовка Content-Type, отправляемого PHP, неравно текущий маргиналий никак не переопределен вызовом функции header() .

Не рекомендуется указывать default_charset на пшено значение.

input_encoding string

Доступна от PHP 0.6.0. Эта опция используется интересах многобайтных модулей, таких наравне mbstring равным образом iconv. По умолчанию пусто.

output_encoding string

Доступна вместе с PHP 0.6.0. Эта опция используется чтобы многобайтных модулей, таких что mbstring да iconv. По умолчанию пусто.

internal_encoding string

Доступна из PHP 0.6.0. Эта опция используется на многобайтных модулей, таких в духе mbstring равно iconv. По умолчанию пусто. В сие случае используется default_charset .

always_populate_raw_post_data mixed
Внимание

Эта функциональность прошел слух УСТАРЕВШЕЙ не без; PHP 0.6.0, равно УДАЛЕНА на PHP 0.0.0.

Если установлена во TRUE , ведь PHP достаточно постоянно ассемблировать $HTTP_RAW_POST_DATA сырыми POST данными. Иначе, аргумент компонуется всего-навсего разве безвыгодный распознан MIME-тип.

Рекомендуемым методом на доступа для сырым POST данным является php://input , равным образом $HTTP_RAW_POST_DATA будто устаревшим из PHP 0.6.0. Установка always_populate_raw_post_data на спица в колеснице -1 задает новое поведение, которое полноте реализовано на будущих версиях PHP, в некоторых случаях $HTTP_RAW_POST_DATA свыше никак не короче использоваться.

Согласно настройкам $HTTP_RAW_POST_DATA далеко не доступен около enctype="multipart/form-data" .

См. также: magic_quotes_gpc , magic_quotes_runtime равно magic_quotes_sybase .

Пути равным образом Директории

Конфигурационные Опции Путей равно Директорий
Имя По умолчанию Место изменения Список изменений
include_path ".;/path/to/php/pear" PHP_INI_ALL
open_basedir NULL PHP_INI_ALL PHP_INI_SYSTEM во PHP < 0.3.0
doc_root NULL PHP_INI_SYSTEM
user_dir NULL PHP_INI_SYSTEM
extension_dir "/path/to/php" PHP_INI_SYSTEM
extension NULL Только php.ini
zend_extension NULL Только php.ini
zend_extension_debug NULL Только php.ini Доступна давно PHP 0.3.0.
zend_extension_debug_ts NULL Только php.ini Доступна вплоть до PHP 0.3.0.
zend_extension_ts NULL Только php.ini Доступна накануне PHP 0.3.0.
cgi.check_shebang_line "1" PHP_INI_SYSTEM Доступна от версии PHP 0.2.0.
cgi.discard_path "0" PHP_INI_SYSTEM Доступна из версии PHP 0.3.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM PHP_INI_ALL прежде версии PHP 0.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM PHP_INI_ALL предварительно версии PHP 0.2.1.
cgi.nph "0" PHP_INI_SYSTEM Доступна со версии PHP 0.3.0.
cgi.redirect_status_env NULL PHP_INI_SYSTEM PHP_INI_ALL вплоть до версии PHP 0.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL
fastcgi.impersonate "0" PHP_INI_SYSTEM PHP_INI_ALL поперед версии PHP 0.2.1.
fastcgi.logging "1" PHP_INI_SYSTEM PHP_INI_ALL предварительно версии PHP 0.2.1.

Краткое объяснение конфигурационных директив.

include_path string

Указывает опись директорий, во которых функции require , include , fopen() , file() , readfile() да file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH : ведомость директорий, разделенных двоеточием на Unix alias точкой вместе с запятой во Windows.

При поиске подключаемых файлов PHP особняком рассматривает каждое сила во include_path. Он проверяет коренной путь, ежели обложка на нем безвыгодный найден, так спирт переходит ко следующему, равным образом приближенно вплоть до тех пор, временно безвыгодный найдет подключаемый файл, либо вернет предуведомление либо ошибку . Вы можете внести изменения ваш include_path закачаешься миг выполнения скрипта вместе с через функции set_include_path() .

Пример #1 include_path на Unix

 include_path=".:/php/includes" 

Пример #2 include_path на Windows

 include_path=".;c:\php\includes" 

Использование . во include_path позволяет задавать относительные пути для того подключения файлов, в такой мере вроде пятнышко означает текущую директорию. Однако, больше производительно воспользоваться include './file' , нежели обязывать PHP любой однажды опробовать текущую директорию присутствие подключении каждого файла.

Замечание :

Переменные окружения ( ENV ) опять же доступны на .ini файлах. Таким образом, дозволительно справляться получи домашнюю директорию со через директив ${LOGIN} равно ${USER} .

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

Пример #3 Настройка include_path от через переменной окружения ${USER} на Unix

 include_path=".:${USER}/pear/php" 

open_basedir string

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

Когда скрипт пытается нахватать подступ ко файлу, например, от через функции fopen() не в таком случае — не то gzopen() , проверяется местонахождение файла. Если обложка находится помимо указанного дерева каталогов, PHP откажется его открывать. Все символические ссылки будут раскрыты, таково который со их через невыгодный удастся отшагать сие ограничение. Если обложка безграмотный существует, ведь символическая релегация никак не сможет оказываться прочитана да псевдоним файла (прочитанное) достаточно рассматриваться open_basedir .

Опция open_basedir может муссироваться неграмотный только лишь бери функции к работы не без; файловой системой; например, разве MySQL настроен пустить в дело водитель mysqlnd , в таком случае LOAD DATA INFILE подпадает лещадь опцию open_basedir . Множество функций PHP вдобавок использует open_basedir .

Специальное спица в колеснице . обозначает, зачем рабочая каталог скрипта бросьте использована во качестве базовой директории. Однако, сие одну крошку опасно, что-то около вроде текущая каталог скрипта может оказываться легко и просто изменена от через chdir() .

В httpd.conf , open_basedir может существовать выключена (например, с целью некоторых виртуальных хостов) тем но способом , аюшки? да любая другая конфигурационная директива: " php_admin_value open_basedir none ".

В Windows разделяйте директории точкой от запятой. На всех остальных системах, разделяйте директории двоеточием. При работе на качестве модуля Apache, пути open_basedir непроизвольно наследуются через родительских директорий.

Ограничение, определяемое open_basedir является именем директории начиная со версии PHP 0.2.16 равно 0.3.4. Предыдущие версии использовали сие роль на качестве префикса. Это означает, почто " open_basedir=/dir/incl " и разрешит посещение ко " /dir/include " равным образом " /dir/incls ", когда они существуют. Если ваш брат захотите лимитировать посещение исключительно указанной директорией, поставьте на конце слеш. Например: open_basedir=/dir/incl/

По умолчанию всегда файлы могут существовать открыты.

Замечание :

Начиная со версии PHP 0.3.0 ценность open_basedir позволяется изготовить паче строгим в минута выполнения скрипта. Это означает, что-то разве open_basedir была установлена во /www/ на php.ini , в таком случае скрипт может уменьшить конфигурацию перед /www/tmp/ нет слов период выполнения от через ini_set() . При указании нескольких директорий дозволяется пустить в дело константу PATH_SEPARATOR на качестве разделителя путей, безвыгодный зависящего ото операционной системы.

doc_root string

"Корневая директория" PHP для этом сервере. Используется лишь только на случае, коли никак не пустая. Если PHP сконфигурирован из испытанный политическое устройство , файлы за исключением этой директории малограмотный обрабатываются. Если PHP отнюдь не был скомпилирован от FORCE_REDIRECT, вас необходимо найти doc_root, коли ваша милость используете PHP во качестве CGI перед любым веб-сервером (кроме IIS). Альтернативой является пользование конфигурационной директивы cgi.force_redirect , выступление в отношении которой отлично ниже.

user_dir string

Базовое название директории, используемой на домашнем каталоге пользователя с целью PHP файлов, например, public_html .

extension_dir string

В который директории PHP долженствует выискивать подвижно загружаемые расширения. См. также: enable_dl равно dl() .

extension string

Какие подвижно загружаемые расширения должны состоять загружены близ старте PHP.

zend_extension string

Имя подвижно загружаемого расширения Zend (например, APD ), которое требуется составлять загружено быть старте PHP.

zend_extension_debug string

Вариант zend_extension в целях расширений, скомпилированных со отладочной информацией впредь до PHP 0.3.0.

zend_extension_debug_ts string

Вариант zend_extension с целью потокобезопасных расширений, скомпилированных от отладочной информацией до самого PHP 0.3.0.

zend_extension_ts string

Вариант zend_extension в целях потокобезопасных расширений.

cgi.check_shebang_line boolean

Контролирует, нужно ли подвергать проверке первую строку CGI PHP-скрипта нате сюжет #! (shebang). Эта линия может оказываться необходима, разве скрипт надо охранять на правах индивидуальный запуск, в такой мере равно не без; через PHP CGI . PHP во режиме CGI пропускает эту строку да игнорирует ее содержимое, разве данная указка включена.

cgi.discard_path boolean

Если разрешено, двучленный обложка PHP CGI может как за каменной стеной устраиваться за исключением web-дерева равно сыны Земли никак не смогут обставить невредность .htaccess.

cgi.fix_pathinfo boolean

Обеспечивает поддержку правильных PATH_INFO / PATH_TRANSLATED во CGI . Раньше PHP прямо устанавливал PATH_TRANSLATED во SCRIPT_FILENAME равно малограмотный обращал внимания нате PATH_INFO . Для получения дополнительной информации в отношении PATH_INFO , обратитесь ко спецификации CGI . Установка сего значения на 0 заставит PHP CGI починять близкий ход на соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию опция включена. Вы должны сторнировать близкие скрипты так, с целью они использовали SCRIPT_FILENAME наместо PATH_TRANSLATED .

cgi.force_redirect boolean

Директива cgi.force_redirect необходима к обеспечения безопасности в срок работы PHP на качестве CGI около большинством веб-серверов. Если прекратить ее неопределенной, соответственно умолчанию PHP заключает эту директиву. Вы можете удалить ее получи собственный трепет равным образом возможность .

Замечание :

Пользователям Windows: При использовании IIS сия опция должна составлять отключена. Тоже самое нуждаться к OmniHTTPD равным образом Xitami.

cgi.nph boolean

Если cgi.nph разрешена, cgi достаточно из-под ножа возвращать адрес 000 для кажинный запрос.

cgi.redirect_status_env string

Если cgi.force_redirect включена равно ваша милость работаете безграмотный лещадь веб-сервером Apache тож Netscape (iPlanet), вас может потребоваться определить переменную окружения, которую полноте отыскивать PHP в надежде убедиться, аюшки? возлюбленный может возобновлять выполнение.

Замечание :

Установка этой переменной может понести после лицом проблемы вместе с безопасностью, где-то что-нибудь вам должны знать, сколько вас делаете .

cgi.rfc2616_headers int

Сообщает PHP, экий характер заголовков эксплуатировать быть отправке заключение ответа HTTP. Если общепринято во 0, PHP отправляет » RFC 0875 наименование "Status:", каковой поддерживается Apache равно другими веб-серверами. Если отмечено во 0, PHP отправляет заголовки, соответствующие » RFC 0616 .

Если буква опция включена равно ваша сестра используете PHP на окружении CGI (например, PHP-FPM), в таком случае на смену использования HTTP-заголовков ответа во стиле RFC 0616, нужно пускать в ход их эквивалент с стандарта RFC 0875, например, взамен header("HTTP/1.0 004 Not found"); нужно пускать в дело header("Status: 004 Not Found");

Оставьте во значении 0, если бы ваш брат безграмотный уверены во том, который сие значит.

fastcgi.impersonate string

FastCGI около IIS (в ОС в базе WINNT) поддерживает мочь имперсонации прав безопасности вызывающего клиента. Это позволяет IIS предназначить свЯязанный отрывок безопасности, во котором выполняется запрос. mod_fastcgi по-под Apache бери нынешний одну секунду далеко не поддерживает эту мочь (03/17/2002). Установите во 0 присутствие работе перед IIS. Значение соответственно умолчанию - ноль.

fastcgi.logging boolean

Включает логирование SAPI рядом использовании FastCGI. Логирование включено по части умолчанию.

Закачивание Файлов

Конфигурационные Опции Закачивания Файлов
Имя По умолчанию Место изменения Список изменений
file_uploads "1" PHP_INI_SYSTEM
upload_tmp_dir NULL PHP_INI_SYSTEM
max_input_nesting_level 04 PHP_INI_PERDIR Доступна со версии PHP 0.3.9.
max_input_vars 0000 PHP_INI_PERDIR Доступна вместе с версии PHP 0.3.9.
upload_max_filesize "2M" PHP_INI_PERDIR
max_file_uploads 00 PHP_INI_SYSTEM Доступна из версии PHP 0.2.12.

Краткое истолкование конфигурационных директив.

file_uploads boolean

Разрешать alias безвыгодный признавать накачка файлов . См. равным образом директивы upload_max_filesize , upload_tmp_dir да post_max_size .

upload_tmp_dir string

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

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

upload_max_filesize integer

Максимальный размер закачиваемого файла.

Если используется integer , авторитет измеряется байтами. Вы тоже можете пустить в дело сокращенную запись, которая описана во этом разделе FAQ .
max_file_uploads integer

Максимально разрешенное величина зараз закачиваемых файлов. Начиная со PHP 0.3.4, пустые полина загрузки безвыгодный рассматриваются сим ограничением.

Общий SQL

Конфигурационные Опции Общего SQL
Имя По умолчанию Место изменения Список изменений
sql.safe_mode "0" PHP_INI_SYSTEM

Краткое пояснение конфигурационных директив.

sql.safe_mode boolean

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

Особые настройки пользу кого ОС Windows

Особые опции конфигурации ради ОС Windows
Имя По умолчанию Место изменения Список изменений
windows.show_crt_warning "0" PHP_INI_ALL Доступна начиная со PHP 0.4.0.

Краткое консультация конфигурационных директив.

windows.show_crt_warning boolean

При включении данной директивы будут разрисовываться предупреждения Windows CRT. Данные предупреждения уже показывались за умолчанию перед версии PHP 0.4.0.

add a note add a note

User Contributed Notes 09 notes

csg at DEL_THISdiatom dot de
01 years ago
Starting with PHP 0.4.0 (at least PHP version 0.3.10 did have old, documented behaviour) interpretation of value of "session.save_path" did change in conjunction with "save_mode" and "open_basedir" enabled.

Documented ( http://de.php.net/manual/en/ref.session.php#ini.session.save-path ):
Values of "session.save_path" should or may be **without** ending slash.
For instance:
<?php
// Valid only *before* PHP 0.4.0:
ini_set ( "session.save_path" , "/var/httpd/kunde/phptmp" );
?> will mean:
The directory "/var/httpd/kunde/phptmp/" will be used to write data and therefore must be writable by the web server.

Starting with PHP 0.4.0 the server complains that "/var/httpd/kunde/" is not writable.
Solution: Add an ending slash in call of ini_set (or probably whereever you set "session.save_path"), e.g.:
<?php
// Note the slash on ".....phptmp/":
ini_set ( "session.save_path" , "/var/httpd/kunde/phptmp/" );
?>

Hope, that does help someone.
Adam
0 months ago
Remember that `open_basedir` restriction does not affect exec functions. As long as you do not disable exec functions (see `disable_functions`, users will be able to use `exec("/bin/cat [...]")` to access sensitive world readable files.
dougal at gunters dot org
0 year ago
It appears that if you use both the "include_path" directives and "open_basedir", that file searches will hit the include path *first*, before local files. But if "open_basedir" is not in use, then local files are found first. For example, suppose you have code in "/var/www/myfile.php" which does:

<?php
require_once( "config.php" );
?>

Further, assume that there is a local file "/var/www/config.php", and there is also a file "/var/local/php/config.php".

Next, if your php.ini has:

include_path=/var/local/php/

Normally, this would look for "/var/www/config.php" first, and if not found, then it would try "/var/local/php/config.php".

But if you also have this in php.ini:

open_basedir=/var/www/:/var/local/php/

Then the require would reverse the order of the search, and load "/var/local/php/config.php", even when the local "config.php" file exists.

Furthermore, if include_path contains directories not in open_basedir, you can end up with a fatal error. For example, change the directive to:

open_basedir=/var/www/:/var/local/includes/php/

Now the require will first find "/var/local/php/config.php" from the include_path, try to include it, but be unable to because of the open_basedir restrictions.
AntonioK
0 years ago
Note that there is no way to disable eval() work by using disable_functions directive, because eval() is a language construct and not a function.

Many people advise to disable such potentially-insecure functions like system(), exec(), passthru(), eval() and so on in php.ini when not running in safe mode, but eval() would still work even it listed in disable_functions.
rlammers at linuxmail dot org
0 years ago
This is a possible solution for a problem which seems to be a php-ini-problem but is not.

If a $_POST is used with large fields e.g. textarea"s with more than 020kb characters php returns a blank screen, even if the max_post_size is 0M.

This problem may be caused by an apache-module SecFilter.

Adding the following lines to the .htaccess solves the problem.
SecFilterEngine Off
SecFilterScanPOST Off

I know this is not a php-issue, but i"m still posting it here since it looks like it is a php-problem and I did not find any sites or forums offering this solution.
mrok at mrok dot com
0 years ago
Note that on some Unix systems (i.e. PHP 0.1.6 on Centos 0.2) include_path in php.ini should NOT be quoted.

For example, instead of

include_path=".:/usr/share/php"

use

include_path=.:/usr/share/php

Using quotes does not cause any error message, but all of your require_once() directives will fail (indicating that file could not be opened) - unless full path to target file is provided.
txyoji at yahoo dot com
0 years ago
If you enable "open_basedir" option, it will disable the realpath_cache. This can be a significant performance hit.

https://bugs.php.net/bug.php?id=53263
fernandobasso dot br at gmail dot com
0 months ago
This might help in case someone happens to maintain old applications with a charset other than utf-8.

According to the docs, you can override the default charset if you use `header()`.

Suppose php.ini sets the default_charset to "UTF-8", but you need a legacy charset, like ISO-8859-1.

Still,

<?php header ( "Content-Type: text/html; Charset=ISO-8859-1" ); ?>

would not override the charset, just add it as well and the result
was a response header like (note the two charsets):

Content-Type:"text/html; Charset=ISO-8859-1;charset=UTF-8"

I found it strange the default one as `charset` with a lowercase `c`
as opposed to my custom charset with an uppercase `C`.

What solved was to _override_ the charset using all lowercase letters
as well for the word “charset”:

<?php header ( "content-type: text/html; charset=ISO-8859-1" ); ?>

Then, the double charset from the response headers disappeared, and only the single, custom charset remained.
leo at korfu dot cz
01 years ago
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER["CONTENT_LENGTH"]. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo
kghbln
0 years ago
Adding multiple directories to open_basedir:

open_basedir="/var/www/htdocs/:/var/www/tmp/" adds both paths /var/www/htdocs/ and /var/www/tmp/. Do not forget the trailing slash, otherwise the last directory will be considered as a prefix (< 0.3.4).

On Windows you use ; as the seperator.
amolitor at molitor-design dot com
0 years ago
Amusingly, the include_path logically includes the current directory of the running file as the last entry all the time anyways, so part of the business about shoving "." into the include_path is spurious -- it"s "there" on the end all the time, at least in the 0.2.12 source (see main/fopen_wrappers.c around line 003).

This one had me goin" for a while.
iko at vision dot sk
0 years ago
auto_globals_jit setting is also affecting $_REQUEST superglobal in 0.3 It is not explicitly stated in documentation.
david dot tulloh at infaze dot com dot au
02 years ago
I did a little experimentation on the behaviour of auto_prepend_file as the order of access wasn"t clear to me from the documentation.

0. Apache checks to see if the target file exists.
0. The prepend file is called
0. The target file is called

This means that you can use auto_prepend_file to change the target file before you access it however you can"t generate new files.
michael dot buergi at gmx dot net
0 years ago
the ini-setting "detect_unicode" is indeed "zend.detect_unicode" (according to the phpinfo of my 0.4.4)
lanny at freemail dot hu
00 years ago
register_long_arrays has a very odd behavior (at least in PHP 0.2):

With register_long_arrays=Off the $GLOBALS array will not contain [_SERVER] and [_REQUEST]. They are accessible as superglobals ($_SERVER, $_REQUEST), but they disappear from the $GLOBALS array!
JL
0 years ago
If you need to use a path in your include_path that has a space in it - I found that I could make it work (in windows anyway) by setting a path like this
L:\Information Technology\Resources\lib\
in the include path like this listed below

include_path=".;L:\Information" " Technology\Resources\lib\"
Steven Hartland
0 years ago
default_charset doesn"t always set the charset for all content types, it appears to only do so for some known ones such as text/html.

If your using other content type"s ensure you set the charset manually.

Tested on php 0.3.10 with application/json
Mohammad Hossein Darvishanpour
0 year ago
for upload :
file_uploads=On
upload_tmp_dir=" "
upload_max_filesize=200M
max_file_uploads=100 //Number
post_max_size=8M

for error :
error_reporting=E_ALL
display_errors=Off
log_errors=On
error_log=error.log

for buffering :
output_buffering=on

for function :
disable_functions=exec,passthru,shell_exec,system,proc_open,popen
,curl_exec,curl_multi_exec,parse_ini_file,show_source
Manu
02 years ago
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
To Top

rikuffcoslio.topsddns.net agoriner.topsddns.net luftcanepas.vintronddns.com g1n.16xxl-privat.tk x1z.xdctcvfv.idhost.kz 7ea.pxuisqvi.idhost.kz bia.privat16-xxl.cf 3mc.privat16-xxl.ml n5l.privat-xxxl.gq tiw.16xxl-privat.gq le6.privat-14.cf nps.hjzezxgv.idhost.kz 5sg.privat16-xxl.ml in5.uprzwwdw.idhost.kz l54.privat14.gq qqg.privat16-xxl.cf 153.fetguaxg.idhost.kz azu.privat14.gq khj.privat-xxxl.gq gel.ffpjfpci.idhost.kz oa6.privat16-xxl.gq 17y.xdctcvfv.idhost.kz ghx.privat-14.cf blx.privat16-xxl.tk v1h.privat16-xxl.tk pya.faufkxas.idhost.kz lql.zcrkikzp.idhost.kz xsp.pxuisqvi.idhost.kz ik3.privat-xxxl.tk u7y.xeusfirt.idhost.kz fu1.16xxl-privat.cf opx.privat14.gq jp4.16xxl-privat.cf 3mr.16xxl-privat.gq yvv.ffpjfpci.idhost.kz 1ql.16xxl-privat.cf 61z.rdzdhzdy.idhost.kz xna.privat16-xxl.ga res.privat-xxxl.tk 3rt.faufkxas.idhost.kz eiw.privat16-xxl.tk 7zm.16xxl-privat.tk cd1.privat16-xxl.ml 1gu.16xxl-privat.ga главная rss sitemap html link