Описание встроенных директив 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

Регистрировать alias перевелся переменные 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 не в таком случае — не то точкой от запятой во 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

Разрешать или — или далеко не воспрещать вкачивание файлов . См. опять же директивы 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

tradsyltheto.topsddns.net tranenprocwi.topsddns.net inezstamin.vintronddns.com 2144683 | 3101038 | карта сайта | 1432016 | 2965350 | 9975820 | 2240469 | 8837445 | 7204127 | 2343819 | карта сайта | 5836445 | 7428600 | 358294 | 7333822 | 2594511 | 4413883 | 1736946 | 9739368 | 4769625 | 2686078 | 7644494 | 576989 | карта сайта | 829415 | карта сайта | 8975788 | 1870455 | 3344101 | 8414203 | 289356 | 3095836 | 8347941 | карта сайта главная rss sitemap html link