Този списък съдържа директивите на php.ini от ядрото, които могат да бъдат установени с цел конфигуриране на PHP. Директивите, които се обслужват от разширения са дадени и описани на страниците на съответните разширения. Например, информация относно директивите свързани с работа със сесии могат да бъдат намерени на страница Функции за сесии.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
async_send | "0" | PHP_INI_ALL |
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
short_open_tag | "1" | PHP_INI_ALL | PHP_INI_ALL от PHP <= 4.0.0. PHP_INI_PERDIR от PHP < 5.3.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 only | |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Достъпна от PHP 5.0.0. Премахната в PHP 5.3.0 |
Тук има кратко описание на конфигурационните директиви.
Указва дали е позволено използването на кратката форма
(<? ?>
) за отварящия таг на PHP.
Ако искате да използвате PHP в комбинация с XML, тряжва да
забраните тази опция за да можете да използвате
<?xml ?>
.
В противен случай трябва да го изведете с PHP, например
<?php echo '<?xml version="1.0"'; ?>
.
Също така, ако е забранено, трябва да използвате пълната форма
на отварящия PHP таг (<?php ?>
).
Забележка: Директивата засяга и кратката форма
<?=
, която е еквивалентна на<? echo
. Използването на тази кратка форма изискваshort_open_tag
да бъде включена.
Указва дали да се изведе предупреждение, ако параметрите на функция са предадени по референция време на извикването и. Този метод е непрепоръчителен, и е най-вероятно да не се поддържа и в бъдещи версии на PHP/Zend. Препоръчителният метод за определяне кои параметри трябва да бъдат предадени по референция е това да се извършва в декларацията на функцията. Също така се препоръчва, да пробвате тази опция включена и изключена, и да се уверите, че скриптовете ви работят и в двата случая, за да сте сигурни, че ще работят и с бъдещи версии на езика (като ще бъде генерирано предупреждение всеки път, когато използвате тези възможности).
Предаването на параметри на функция по време на извикването и стана непрепоръчително с цел по-голяма прегледност на кода. Дадена функция може да промени параметрите си, по начин, който не е документиран, ако този параметър не е деклариран като предаван по референция. За да предотвратите тези странични ефекти, е по-добре да укажете точно кои параметри се предават по референция само в декларацията на функцията.
Вж. съшо Референции.
Указва дали PHP да се показва като инсталирано на сървъра (като добавя определен низ в хедъра на уеб сървъра). Това не застрашава сигурността по никакъв начин, но предоставя възможност да се разбере дали на сървъра е инсталирано PHP или не.
Активира режима на съвместимост със Zend Engine 1 (PHP 4). Тази промяна влияе на клонирането, преобразуването на типовете (обекти без свойства се преобразуват до FALSE или 0) и сравняването на обектите. В този режим обектите се предават по стойност, а не както е по подразбиране - по референция.
Вижте също раздела наречен Миграция от PHP 4 към PHP 5.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | "8M" преди PHP 5.2.0, "16M" от PHP 5.2.0 |
Тук има кратко описание на конфигурационните директиви.
Тази директива установява максималното количество памет (в байтове), което даден скрипт може да използва. Посредством това се предотвратява използването на цялата достъпна памет на сървъра, от зле написани скриптове. Забележете, че за да премахнете ограничението за използването на паметта, трябва да установите тази директива в -1.
Прези PHP 5.2.1, с цел използването на тази директива, трябва тя да бъде активирана по време на компилация, посредством -enable-memory-limit. Това е необходимо и за да бъдат достъпни функциите memory_get_usage() и memory_get_peak_usage().
Когато се използва цяло число, стойността се отчита в байтове. Може да се използва също и краткото записване, съгласно описанието във FAQ.
Вж. също: max_execution_time.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Достъпна от PHP 5.1.0. |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Достъпна от PHP 5.1.0. |
Тук има кратко описание на конфигурационните директиви.
Установява размера на realpath кеша, който ще се използва от PHP. Тази стойност трябва да е по-голяма в системи, при които PHP отваря множество файлове, с цел това да се отрази на количеството на извършените файлови операции.
Периодът от време (в секунди) за което да се кешира realpath информацията за даден файл или директория. В системи при които рядко се променят файловете, стойността трябва да е по-голяма.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
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_PERDIR | PHP_INI_ALL от PHP <= 5.0.5. |
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Достъпна от PHP 5.3.0 |
auto_globals_jit | "1" | PHP_INI_PERDIR | Достъпна от PHP 5.0.0. |
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 |
Тук има кратко описание на конфигурационните директиви.
Ако е активирана, променливите на обкръжението, GET, POST, бисквитките и сървърните променливи ще бъдат достъпни в асоциативните масиви $_ENV, $_GET, $_POST, $_COOKIE и $_SERVER.
Забележете, че от PHP 4.0.3, track_vars
е винаги включена.
Разделителят използван при URL-адресите генерирани от PHP, за разделяне на аргументите.
Списък на разделителите използвани от PHP за прехвърляне на данните от URL-адреса към променливи.
Забележка: Всеки знак на тази директива се счита за разделител!
Установява реда на обработка на EGPCS (Environment, Get, Post, Cookie, и Server) променливите. Например, ако variables_order е установена в "SP", PHP ще създаде superglobals $_SERVER и $_POST, но няма да създаде $_ENV, $_GET, and $_COOKIE. Установяването на директивата в "" означава, че никакви superglobals няма да бъдат установени.
Ако непрепоръчителната директива register_globals е включена (премахната в PHP 6.0.0), variables_order ще определя реда на променливите ENV, GET, POST, COOKIE и SERVER, които са от глобалната област на действие. Така например, ако variables_order е установен в "EGPCS", register_globals е включена и са установени $_GET['action'] и $_POST['action'], $action ще приеме стойността на $_POST['action'], тъй като P е след G в примерната стойност на директивата.
При CGI и при FastCGI SAPI-та $_SERVER се попълва и от стойности от обкръжението; S винаги е еквивалентно на ES независимо от поставянето на E някъде другаде в тази директива.
Забележка: Съдържанието и реда на $_REQUEST също зависи от тази директива.
Тази директива описва реда в който PHP регистрира променливите GET, POST и Cookie в масива _REQUEST. Регистрацията се извършва от ляво на дясно, като по-новите стойности препокриват по-старите.
Ако директивата не е установена, за $_REQUEST променливите се използва стойността на variables_order.
Ако директивата е включена SERVER и ENV променливите се създават в момента на първата им употреба (Just In Time), а не в началото на изпълнението на скрипта. Ако тези променливи не се използват в скрипта, включването на тази директива ще доведе до увеличаване на производителността.
За да може да работи тази директива, директивите register_globals, register_long_arrays, и register_argc_argv трябва да бъдат изключени. От PHP 5.1.3 не е необходмо да е изключена директивата register_argc_argv.
Указва дали да бъдат регистрирани EGPCS (Environment, GET, POST, Cookie, Server) променливите като глобални променливи.
От » PHP 4.2.0, стойността по подразбиране на тази директива е off.
За повече информация, моля, прегледайте главата за сигурността от Употреба на register_globals.
Забележете, че register_globals
не може да се установява по време на изпъление на скрипта (ini_set()).
Въпреки това, ако хостингът ви позволява, можете да използвате .htaccess
както е описано по-долу. Примерен код за .htaccess:
php_flag register_globals off
.
Забележка:
register_globals
зависи от директивата variables_order.
Тази възможност е НЕПРЕПОРЪЧИТЕЛНА от PHP 5.3.0 и ПРЕМАХНАТА след PHP 6.0.0. Да се разчита на тази възможност е силно непрепоръчително.
Установява реда на обработката на GET/POST/COOKIE променливите. Стойността по подразбиране на тази директива е "GPC". Установяването и в "GP" например, ще накара PHP напълно да игнорира бисквитките и да препокрива всяка променлива от GET метода с променлива от POST-метода носеща същото име.
Забележка: Тази опция не е налична в PHP 4. Вместо нея използвайте variables_order.
Указва името на файла, който автоматично се анализира преди главният файл. Файлът се вмъква, все едно е вмъкнат посредством функция require(), така че, при вмъкването се използва include_path.
Специалната стойност none забранява автоматичното анализиране.
Указва името на файла, който автоматично се анализира след главният файл. Файлът се вмъква, все едно е вмъкнат посредством функция require(), така че, при вмъкването се използва include_path.
Специалната стойност none изключва автоматичното вмъкване за анализ.
Забележка: Ако изпълнението на скрипта е спряно с exit(), автоматично анализиране няма да се извърши.
От версия 4.0.0, PHP винаги извежда набора от знаци по подразбиране в заглавката Content-type. За да забраните изпращането на набора от знаци, просто я установете в празен низ.
Винаги попълва $HTTP_RAW_POST_DATA със суровите данни предадени по POST. В противен случай, променливата се попълва само с неразпознатия MIME тип на данните. Въпреки това, предпочитаният метод за осъществяване на достъп до суровите POST данни е php://input. $HTTP_RAW_POST_DATA не е достъпна при enctype="multipart/form-data".
Позволява работа с WebDAV http заявки в PHP-скриптове (например PROPFIND, PROPPATCH, MOVE, COPY и т.н). Директивата не съществува до PHP 4.3.2. Ако искате да вземете данните от заявка изпратена по post, трябва да установите и always_populate_raw_post_data.
See also: magic_quotes_gpc, magic_quotes_runtime, and magic_quotes_sybase.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
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 | |
extension | NULL | само php.ini | |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Достъпна от PHP 5.2.0. |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | Достъпна от PHP 4.3.0. PHP_INI_ALL преди PHP 5.2.1. |
cgi.force_redirect | "1" | PHP_INI_SYSTEM | Достъпна от PHP 4.2.0. PHP_INI_ALL преди PHP 5.2.1. |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | Достъпна от PHP 4.2.0. PHP_INI_ALL преди PHP 5.2.1. |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | Достъпна от PHP 4.3.0. PHP_INI_ALL преди PHP 5.2.1. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Достъпна от PHP 4.3.0. |
Тук има кратко описание на конфигурационните директиви.
Указва списъкът от директории, където require(), include(), fopen(), file(), readfile() и file_get_contents() ще търсят за файлове. Форматът е същият като променливата за системния път PATH: списък на директории, разделени с двоеточие при Юникс и точка и запетая при Уиндоус.
Example #1 include_path при Unix
include_path=".:/php/includes"
Example #2 include_path при Windows
include_path=".;c:\php\includes"
Употребата на . в пътя за включване ви позволява да извършите относителни включвания, като точката представлява текущата директория.
Главната директория на PHP на сървъра. Стойността и се използва само, ако не е празна. Ако PHP е конфигурирано с защитен режим, файлове извън тази директория не се обслужват. Ако PHP не е компилирано с FORCE_REDIRECT, трябва да установите doc_root, при положение, че сте стартирани PHP като CGI под който и да е уеб сървър (различен от IIS). Другият начин е да използвата cgi.force_redirect показана по-долу.
Наименованието на основната директория, използвана от потребителя като начална за PHP файловете, например public_html.
Директорията в която PHP ще търси динамично-зареждаемите разширения. Вж. също: enable_dl, и dl().
Кои динамично зареждаеми се разширения да бъдат заредени при стартиране на PHP.
Указва дали CGI PHP ще проверява за редове започващи с #! (shebang), в началото на стартирания скрипт. Този ред може да е нужен, ако скриптът може да се изпълни самостоятелно и с PHP CGI. В CGI режим PHP прескача този ред и игнорира съдържанието му, ако директивата е включена.
Осигурява реална поддръжка на PATH_INFO/PATH_TRANSLATED за CGI. Предишното поведение на PHP беше да установи PATH_TRANSLATED в SCRIPT_FILENAME, без да се съобразява с PATH_INFO. За повече информация относно PATH_INFO прегледайте CGI спецификацията. Ако тази директива е установена в 1, PHP CGI ще коригира пътищата, така, че да отговарят на спецификацията. Установяването и в 0, означава, че PHP ще се държи както преди. Стойността и по подразбиране е 0; Добре е да промените скриптовете си да използват SCRIPT_FILENAME вместо PATH_TRANSLATED.
cgi.force_redirect е необходима, за да осигурите сигурно изпълнение на PHP като CGI под повечето уеб сървъри. Ако се остави недефинирана, PHP ще я включи по подразбиране. Можете да я изключите на своя собствена отговорност.
Забележка: За потребители работещи под Windows: Можете спокойно да изключите директивата при IIS, всъщност трябва да го направите. За да накарате OmniHTTPD и Xitami да заработят, трябва да изключите тази директива
Ако cgi.force_redirect е включена и не работите под Apache или Netscape (iPlanet) уеб сървъри, може да има нужда да установите име на променливата от обкръжението, за която ще търси PHP, за да знае, че може да продължи с изпълнението.
Забележка: Установяването на тази променлива може да доведе до проблеми със сигурността, така че, първо разберете какво точно искате да направите.
FastCGI под IIS (при WINNT-базирани ОС) поддържа възможността да интерпретира ролята на лексемите на сигурността на извикващия клиент. Това позволява на IIS да дефинира контекст на сигурността, под който се изпълнява заявката. mod_fastcgi под Apache в момента не поддържа тази възможност (03/17/2002). Установете тази директива в 1, ако работите под IIS. Стойността й по подразбиране е 0.
Казва на PHP какъв тип заглавки да използва при изпращане на кода за HTTP отговор. Ако е установена в 0, PHP изпраща Status: заглавка, която се поддържа от Apache и други уеб сървъри. Ако опцията е установена в 1, PHP ще изпрати » RFC 2616-съвместима заглавка. Оставете я установена в 0, освен ако не знаете какво точно правите.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
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. |
Тук има кратко описание на конфигурационните директиви.
Дали са позволени HTTP качвания на файлове. Вж. също директивите upload_max_filesize, upload_tmp_dir и post_max_size.
Когато се използва цяло число, стойността се отчита в байтове. Може да се използва също и краткото записване, съгласно описанието във FAQ.Временната директория, която да се използва за съхраняване на файлове при качване. Трябва да бъде достъпна за запис, от потребителя от чието име е пуснато PHP. Ако не е указана, PHP ще използва стойността по подразбиране за системата.
Максималният размер на файла за качване.
Когато се използва цяло число, стойността се отчита в байтове. Може да се използва също и краткото записване, съгласно описанието във FAQ.
Име | По подразбиране | Модифицируемо | Дневник на промените |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Тук има кратко описание на конфигурационните директиви.
Ако са включени функциите за връзка с бази от данни, които имат указани стойности по подразбиране, ще използват тях, вместо предоставените аргументи. За да видите стойностите по подразбиране, прегледайте документацията на функциите за свързване към съответните бази от данни.