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

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

List of Supported Timezones Директивы php.ini

Last updated: Sat, 27 Jan 2007

view this page in

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

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

## Опции Httpd

Таблица G-3. Опции Httpd

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
async_send | "0" | PHP_INI_ALL |

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

Таблица G-4. Опции языка и прочих настроек

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
precision | "14" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
expose_php | "1" | Только `php.ini` |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.

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

`short_open_tag` boolean

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

  > Замечание: Эта директива также влияет на сокращение `<?=`, которое идентично записи `<? echo`. Для использования этого сокращения, директива short_open_tag должна быть включена.

`asp_tags` boolean

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

  > Замечание: Поддержка тегов в стиле ASP выла добавлена в версии PHP 3.0.4.

`precision` integer

  Количество значащих цифр, отображаемых для десятичных дробей.

`y2k_compliance` boolean

  Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами).

`allow_call_time_pass_reference` boolean

  Включена ли возможность жёсткой передачи аргументов по ссылке во время вызова функции. Этот метод является устаревшим и скорее всего не будет поддерживаться будущими версиями PHP/Zend. Рекомендуемым методом указания, какие аргументы должны быть переданы по ссылке, является указание этого при объявлении функции. Вам рекомендуется попытаться отключить эту опцию, чтобы убедиться, что ваши скрипты будут правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этим методом, и аргументы будут передаваться по значению, а не по ссылке).

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

  См. также Ссылки - подробное описание.

`expose_php` boolean

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

`zend.ze1_compatibility_mode` boolean

  Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов и сравнение объектов.

  См. также раздел Миграция из PHP 4 в PHP 5.

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

Таблица G-5. Ограничения ресурсов

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
memory_limit | "8M" | PHP_INI_ALL |

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

`memory_limit` integer

  Эта директива задаёт максимальный объём памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы использовать эту директиву, вы должны указать её на этапе компиляции. Так, ваша строка конфигурации должна включать: `--enable-memory-limit`. Обратите внимание, что вы должны установить эту директиву в -1, если не хотите ограничивать объём памяти.

  Начиная с версии PHP 4.3.2, если memory_limit включён, стала доступна функция PHP memory_get_usage().

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

См. также: max_execution_time.

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

Таблица G-6. Конфигурационные опции обработки данных

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Доступна с версии PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_ALL |
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.1.0.
allow_webdav_methods | "0" | PHP_INI_PERDIR |

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

`track_vars` boolean

  Если включено, переменные окружения, GET, POST, Cookie и серверные переменные могут быть получены через глобальные ассоциативные массивы `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` и `$_SERVER`.

  Обратите внимание, что начиная с версии PHP 4.0.3, track_vars всегда включена.

`arg_separator.output` string

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

`arg_separator.input` string

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

  > Замечание: Каждый символ в этой директиве считается разделителем!

`variables_order` string

  Устанавливает порядок обработки переменных EGPCS (Environment, GET, POST, Cookie, Server). Значением по умолчанию для этой директивы является "EGPCS". Установка её в "GP", к примеру, заставит PHP полностью игнорировать переменные окружения, cookie и сервера, а так же перезаписать любую GET-переменную POST-переменной с таким же именем.

  См. также register_globals.

`auto_globals_jit` boolean

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

  Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для того, чтобы эта директива работала.

`register_globals` boolean

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

  Начиная с версии PHP 4.2.0, значением по умолчанию для этой директивы является off.

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

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

  > Замечание: На поведение register_globals влияет директива variables_order.

`register_argc_argv` boolean

  Сообщает PHP, следует ли объявляеть переменные argv и argc (которые будут содержать GET-информацию).

  См. также Использование PHP в командной строке. Эта директива стала доступна начиная с версии PHP 4.0.0 и до этого была всегда включена.

`register_long_arrays` boolean

  Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа `$HTTP_*_VARS`. Если включены (по умолчанию), длинные предопределенные переменные PHP, например `$HTTP_GET_VARS`, будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например `$_GET`.

  Эта директива стала доступна начиная с версии PHP 5.0.0.

`post_max_size` integer

  Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize.

  Если в вашем конфигурационном скрипте включено ограничение памяти, memory_limit также будет влиять на закачивание файлов. Проще говоря, memory_limit должна быть больше чем `post_max_size`.

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

`gpc_order` string

  Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является "GPC". Установка её в "GP", к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

  > Замечание: Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.

`auto_prepend_file` string

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

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

`auto_append_file` string

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

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

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

`default_mimetype` string

`default_charset` string

  Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.

`always_populate_raw_post_data` boolean

  Всегда объявлять переменную $HTTP_RAW_POST_DATA.

`allow_webdav_methods` boolean

  Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

См. также: magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase.

## Пути и Директории

Таблица G-7. Конфигурационные Опции Путей и Директорий

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.redirect_status_env | "" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM |

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

`include_path` string

  Указывает список директорий, в которых функции require(), include() и fopen_with_path() ищут файлы. Формат соответствует формату переменной окружения `PATH` вашей системы: список директорий, разделённых двоеточием в Unix или точкой с запятой в Windows.

  Пример G-1. include_path в Unix

      include_path=".:/php/includes"

  Пример G-2. include_path в Windows

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

  Использование `.` в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию.

`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

  Which dynamically loadable extensions to load when PHP starts up.

`cgi.fix_pathinfo` boolean

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

`cgi.force_redirect` boolean

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

  > Замечание: Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.

`cgi.redirect_status_env` string

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

  > Замечание: Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

`fastcgi.impersonate` string

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

`cgi.rfc2616_headers` int

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

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

Таблица G-8. Конфигурационные Опции Закачивания Файлов

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.

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

`file_uploads` boolean

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

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

`upload_tmp_dir` string

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

`upload_max_filesize` integer

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

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

## Общий SQL

Таблица G-9. Конфигурационные Опции Общего SQL

Имя | По умолчанию | Изменяемый | Список изменений
--- | --- | --- | ---
sql.safe_mode | "0" | PHP_INI_SYSTEM |

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

`sql.safe_mode` boolean

## Конфигурационные Директивы Отладчика

Предостережение
Отладчик по умолчанию реализован только в PHP 3. Для получения дополнительной информации обратитесь к разделу Прил. E.

`debugger.host` string

  Имя DNS или IP адрес хоста, используемый отладчиком.

`debugger.port` string

  Номер порта, используемый отладчиком.

`debugger.enabled` boolean

  Определяет, включён ли отладчик.

add a note User Contributed Notes
Описание встроенных директив php.ini
lanny at freemail dot hu
25-Dec-2006 03:05
`register_long_arrays has a very odd behavior (at least in PHP 5.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!`
ludicruz at yahoo dot com
19-Dec-2006 10:38
`to make sure that all requests use SSL you can use this in a file that is set for auto_prepend_file. This ensures that all requests are SSL
<?php
if(empty($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on' )
header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}") and exit();
?>`
xangelusx at hotmail dot com
24-Jul-2006 07:28
`I wish the documentation was more clear as to whether the arg_separator.output character is automatically encoded when PHP outputs it. In other words, is "&" valid or do I need to specify the encoded character "&amp;"? It would make sense to specify only "&" and hope that it is encoded as needed. That way the value could be read by other functions and encoded only when output to HTML, rather than having to test whether it is already encoded and decode it when necessary (for header redirection for example)`
leo at korfu dot cz
29-May-2006 03:45
`"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`
csg at DEL_THISdiatom dot de
02-Sep-2005 02:55
`Starting with PHP 4.4.0 (at least PHP version 4.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 4.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 4.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.`
Manu
27-Jul-2005 05:02
`Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.`
david dot tulloh at infaze dot com dot au
26-Jun-2005 06:19
`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.
1. Apache checks to see if the target file exists.
2. The prepend file is called
3. 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.`
Joe
09-Jun-2005 01:05
`Please be mindful, that if you plan on re-configuring / recompiling to add --enable-memory-limit support, you may need to run a 'make clean' before you run 'make'. Otherwise, you may end up with a phpinfo() that shows up with --enable-memory-limit as a configure parameter, but the memory_get_usage() function will still force a fatal error.`
add a note
List of Supported Timezones Директивы php.ini

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST