Forum und email

Descrierea directivelor de bază ale php.ini

Această listă include directivele de bază ale php.ini, pe care le puteţi stabili pentru a configura PHP. Directivele ce se referă la extensii sunt listate şi detaliate pe paginile de documentare ale extensiilor respective. Informaţii despre directivele de sesiune, spre exemplu, pot fi găsite pe pagina de sesiuni.

Opţiunile Httpd

Opţiunile Httpd
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
async_send "0" PHP_INI_ALL  

Opţiunile limbajului

Opţiuni de configurare a limbajului şi opţiuni diverse
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
short_open_tag "1" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.0.0.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL în 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 în PHP <= 4.0.0.
expose_php "1" numai în php.ini  
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponibil începând cu PHP 5.0.0.

Iată o explicaţie pe scurt a directivelor de configurare.

short_open_tag boolean

Indică dacă forma prescurtată (<? ?> ) a etichetei de deschidere a PHP este permisă. Dacă doriţi să utilizaţi PHP în combinaţie cu XML, puteţi dezactiva această opţiune pentru a utiliza <?xml ?> direct în text. În caz contrar, puteţi să le tipăriţi cu PHP, de exemplu: <?php echo '<?xml version="1.0"'; ?> . De asemenea, dacă este dezactivată, trebuie să utilizaţi forma lungă a etichetei de deschidere PHP (<?php ?> ).

Notă: Această directivă de asemenea afectează scurtătura <?= , care este identică cu <? echo . Utilizarea acestei scurtături necesită ca short_open_tag să fie activată.

asp_tags boolean
Permite utilizarea etichetelor de tip ASP <% %> în plus faţă de etichetele obişnuite <?php ?>. Aceasta include şi scurtătura pentru tiparul valorii variabilei <%= $value %>. Pentru mai multe informaţii accesaţi Evadarea din HTML.

Notă: Susţinerea etichetelor de tip ASP a fost adăugată în 3.0.4.

precision integer
Numărul cifrelor semnificative afişate în numerele cu virgulă flotantă.
y2k_compliance boolean
Forţează conformarea cu anul 2000 (va cauza probleme cu navigatoarele nonconformante)
allow_call_time_pass_reference boolean

Afişarea avertizării în cazul când argumentele sunt transmise prin referinţă în timpul apelării funcţiei. Această metodă e descurajată şi e posibil să nu mai fie susţinută în versiunile viitoare ale PHP/Zend. Metoda încurajată de specificare a argumentelor ce trebuie transmise prin referinţă este în declaraţia funcţiei. Sunteţi încurajat să încercaţi să dezactivaţi această opţiune şi să aveţi grijă ca scripturile să lucreze în mod normal cu ea, pentru a vă asigura că ele vor funcţiona cu versiunile viitoare ale limbajului (veţi primi o avertizare de fiecare dată când utilizaţi această facilitate).

Transmiterea argumentelor prin referinţă la momentul apelării funcţiei a fost descurajată din motivul curăţeniei codului-sursă. O funcţie poate să-şi modifice argumentul într-un mod nedocumentat dacă nu a declarat că argumentul este transmis prin referinţă. Pentru a evita efecte secundare este mai bine de a specifica care argumente sunt transmise prin referinţă numai în declaraţia funcţiei.

Accesaţi de asemenea explicaţia referinţelor.

expose_php boolean

Decide dacă PHP va expune sau nu faptul că este instalat pe server (de ex. prin adăugarea semnăturii sale la antetul Web server-ului). Nu este nici un fel de pericol de securitate, însă acest lucru permite de a determina dacă utilizaţi sau nu PHP pe server.

zend.ze1_compatibility_mode boolean

Activează modul de compatibilitate cu Zend Engine 1 (PHP 4). Aceasta afectează clonarea, transformarea (obiectele fără proprietăţi se transformă în FALSE sau 0), şi comparaţia obiectelor. În acest mod, obiectele sunt transmise prin valoare, dar nu prin referinţă, cum e stabilit implicit.

Accesaţi de asemenea secţiunea întitulată Migrarea de la PHP 4 la PHP 5.

Limitele resurselor

Limitele resurselor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
memory_limit "128M" PHP_INI_ALL "8M" înainte de PHP 5.2.0, "16M" în PHP 5.2.0

Iată o explicaţie pe scurt a directivelor de configurare.

memory_limit integer

Aceata stabileşte mărimea maximă a memoriei în baiţi, pe care un script o poate aloca. Astfel se evită situaţia când scripturile scrise rău consumă toată memoria disponibilă pe server. Atrageţi atenţia că pentru a dezactiva limita de memorie, trebuie să stabiliţi această directivă la valoarea -1.

Înainte de PHP 5.2.1, pentru a utiliza această directivă, ea trebuia să fi fost activată la momentul compilării indicând --enable-memory-limit în linia de configurare. Aceasta era de asemenea necesar pentru a defini funcţiile memory_get_usage() şi memory_get_peak_usage().

În cazul utilizării unui integer, valoarea este măsurată în baiţi. De asemenea puteţi utiliza notaţia prescurtată, după cum este descris în acest FAQ.

Accesaţi de asemenea: max_execution_time.

Reglarea performanţei

Reglarea performanţei
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
realpath_cache_size "16K" PHP_INI_SYSTEM Disponibil începând cu PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponibil începând cu PHP 5.1.0.

Iată o explicaţie pe scurt a directivelor de configurare.

realpath_cache_size integer

Determină mărimea cache-ului căilor folosite de PHP. Această valoare trebuie mărită pe sistemele unde PHP deschide multe fişiere, pentru a reflecta cantitatea operaţiunilor efectuate cu fişiere.

realpath_cache_ttl integer

Durata de timp (în secunde) pentru a păstra în cache informaţia despre calea unui fişier sau director. Pentru sisteme cu fişiere care se modifică rar, consideraţi mărirea acestei valori.

Manipularea datelor

Opţiunile de configurare pentru manipularea datelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
track_vars "On" PHP_INI_??  
arg_separator.output "&" PHP_INI_ALL Disponibil începând cu PHP 4.0.5.
arg_separator.input "&" PHP_INI_PERDIR Disponibil începând cu PHP 4.0.5.
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 5.0.5.
auto_globals_jit "1" PHP_INI_PERDIR Disponibil începând cu PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
register_long_arrays "1" PHP_INI_PERDIR Disponibil începând cu PHP 5.0.0.
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM în PHP <= 4.2.3. Disponibil începând cu PHP 4.0.3.
gpc_order "GPC" PHP_INI_ALL  
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL în 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 în PHP <= 4.2.3. Disponibil începând cu PHP 4.1.0.
allow_webdav_methods "0" PHP_INI_PERDIR  

Iată o explicaţie pe scurt a directivelor de configurare.

track_vars boolean

Dacă este activat, atunci variabilele Environment, GET, POST, Cookie şi Server pot fi găsite în masivele asociative globale $_ENV, $_GET, $_POST, $_COOKIE şi $_SERVER.

Atrageţi atenţia că începând cu PHP 4.0.3, track_vars este întotdeauna activat.

arg_separator.output string

Separatorul utilizat în URL-urile generate de PHP pentru a separa argumentele.

arg_separator.input string

Lista separator(arelor) folosite de PHP pentru a analiza şi transfera URL-urile de intrare în variabile.

Notă: Fiecare caracter din această directivă este considerat separator!

variables_order string

Stabileşte ordinea prelucrării variabileleor EGPCS ( Environment, Get, Post, Cookie şi Server). Spre exemplu, dacă variables_order este stabilit în "SP", atunci PHP va crea superglobals $_SERVER şi $_POST, dar nu va crea $_ENV, $_GET şi $_COOKIE. Stabilirea valorii "" înseamnă că nici un superglobals nu va fi stabilit.

Dacă directiva dezaprobată register_globals este stabilită (nu mai există începând cu PHP 6.0.0), atunci variables_order de asemenea configurează ordinea în care variabilele ENV, GET, POST, COOKIE şi SERVER sunt populate în domeniul global. Deci, spre exemplu, dacă variables_order este stabilit în "EGPCS", register_globals este activat, şi ambele $_GET['action'] şi $_POST['action'] sunt stabilite, atunci $action va conţine valoarea $_POST['action'] deoarece P urmează după G în valoarea directivei din exemplul dat.

Avertizare

În ambele SAPI-uri CGI şi FastCGI, $_SERVER este de asemenea populat cu valori din mediu; S este întotdeauna echivalent cu ES independent de amplasarea E în această directivă.

Notă: Conţinutul şi ordinea valorilor din variabila $_REQUEST sunt de asemenea afectate de această directivă.

auto_globals_jit boolean

Când este activată, variabilele SERVER şi ENV sunt create prima dată când sunt utilizate (Exact la timp - Just In Time) în loc să fie create la lansarea scriptului. Dacă aceste variabile nu sunt utilizate în script, atunci activarea acestei directive va duce la o creştere a performanţei.

Directivele PHP register_globals, register_long_arrays şi register_argc_argv trebuie să fie dezactivate pentru ca această directivă să aibă efect. Începând cu PHP 5.1.3 nu este necesar de a avea register_argc_argv dezactivat.

register_globals boolean

Indică dacă variabilele EGPCS (Environment, GET, POST, Cookie, Server) trebuie să fie înregistrate ca variabile globale, sau nu.

Începând cu » PHP 4.2.0, această directivă are valoarea implicită off.

Vă rugăm să citiţi capitolul ce ţine de securitate Utilizarea register_globals pentru mai multe informaţii.

Vă rugăm să atrageţi atenţia că register_globals nu poate fi stabilit în timpul execuţiei ( ini_set()). Cu toate acestea puteţi utiliza .htaccess dacă serverul permite aceasta, după cum e descris anterior. Un exemplu de înregistrare .htaccess: php_flag register_globals off .

Notă: register_globals este afectată de directiva variables_order.

Avertizare

Această facilitate este DEZAPROBATĂ şi este ELIMINATĂ începând cu PHP 6.0.0. Utilizarea acestei facilităţi este foarte nerecomandată.

register_argc_argv boolean
Indică PHP dacă trebuie declarate variabilele argv & argc (care ar conţine informaţia GET). Accesaţi de asemenea linia de comandă. De asemenea această directivă a apărut în PHP 4.0.0 şi a fost întotdeauna "on" înainte de aceasta.
register_long_arrays boolean
Indică PHP dacă trebuie înregistrate, sau nu variabilele predefinite lungi învechite de tip $HTTP_*_VARS. Când este stabilită în On (implicit), variabilele PHP predefinite lungi, cumar fi $HTTP_GET_VARS vor fi definite. Dacă nu le utilizaţi, este recomandabil să le dezactivaţi din motivul performanţei. În loc, utilizaţi masivele superglobale, cum ar fi $_GET. Această directivă a devenit disponibilă în PHP 5.0.0 şi a fost anulată în PHP 6.0.0.
post_max_size integer
Stabileţte mărimea maximă permisă a datelor "post". Această mărime de asemenea afectează încărcarea fişierelor. Pentru a încărca fişiere voluminoase această valoare trebuie să fie mai mare decât upload_max_filesize. Dacă limita de memorie e activată de către scriptul de configurare, memory_limit de asemenea afectează încărcarea fişierelor. Vorbind la general, memory_limit ar trebui să fie mai mare decât post_max_size . În cazul utilizării unui integer, valoarea este măsurată în baiţi. De asemenea puteţi utiliza notaţia prescurtată, după cum este descris în acest FAQ. Dacă mărimea datelor post este mai mare decât post_max_size, superglobalele $_POST şi $_FILES sunt vide. Acest fapt poate fi depistat prin diferite metode, de ex. transmiţând o valoare variabilei $_GET în scriptul care procesează datele, de ex. <form action="edit.php?processed=1">, şi apoi verificând dacă $_GET['processed'] este stabilit.
gpc_order string

Stabileşte ordinea analizei şi transferului variabilelor GET/POST/COOKIE. Valoarea implicită a acestei directive este "GPC". Stabilirea acesteia în "GP", spre exemplu, va cauza PHP să ignoreze complet cookie şi să rescrie orice variabilă primită prin metoda GET cu variabilele primite prin metoda POST şi care au acelaşi nume.

Notă: Această opţiune nu este disponibilă în PHP 4. În loc, utilizaţi variables_order.

auto_prepend_file string

Specifică denumirea unui fişier care va fi automat analizat şi executat înainte de fişierul principal. Acest fişier este inclus, ca şi cum ar fi fost apelat cu funcţia require(), deci include_path este utilizat.

Valoarea specială none anulează executarea automată.

auto_append_file string

Specifică denumirea unui fişier care va fi automat analizat şi executat după fişierul principal. Acest fişier este inclus, ca şi cum ar fi fost apelat cu funcţia require(), deci include_path este utilizat.

Valoarea specială none anulează executarea automată.

Notă: Dacă scriptul este terminat cu exit(), executarea automată nu va avea loc.

default_mimetype string

default_charset string

Începând cu 4.0.0, PHP întotdeauna transmite implicit codificarea caracterelor în antetul Content-type: . Pentru a dezactiva trimiterea setului de caractere, pur şi simplu eliminaţi valoarea acestui parametru.

always_populate_raw_post_data boolean

Întotdeauna populează $HTTP_RAW_POST_DATA cu datele crude POST. În caz contrar, variabila este populată numai cu date de tip MIME necunoscut. Oricum, metoda preferată pentru a accesa datele crude POST este php://input. $HTTP_RAW_POST_DATA nu este disponibilă în cazul enctype="multipart/form-data".

allow_webdav_methods boolean

Permite prelucrarea cererilor http WebDAV din scripturile PHP (de ex. PROPFIND, PROPPATCH, MOVE, COPY, etc.). Această directivă nu există începând cu PHP 4.3.2. Dacă doriţi să primiţi datele post a acestor cereri, trebuie să stabiliţi de asemenea şi always_populate_raw_post_data.

Accesaţi de asemenea: magic_quotes_gpc, magic_quotes_runtime, şi magic_quotes_sybase.

Căile şi directoarele

Opţiunile de configurare a căilor şi directoarelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
include_path ".;/calea/spre/php/pear" PHP_INI_ALL  
doc_root NULL PHP_INI_SYSTEM  
user_dir NULL PHP_INI_SYSTEM  
extension_dir "/calea/spre/php" PHP_INI_SYSTEM  
extension NULL numai în php.ini  
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponibil începând cu PHP 5.2.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM Disponibil începând cu PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM Disponibil începând cu PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.redirect_status_env NULL PHP_INI_SYSTEM Disponibil începând cu PHP 4.2.0. PHP_INI_ALL prior to PHP 5.2.1.
fastcgi.impersonate "0" PHP_INI_SYSTEM Disponibil începând cu PHP 4.3.0. PHP_INI_ALL prior to PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponibil începând cu PHP 4.3.0.

Iată o explicaţie pe scurt a directivelor de configurare.

include_path string

Specifică o listă de directoare, unde funcţiile require(), include(), fopen(), file(), readfile() şi file_get_contents() vor căuta fişierele. Formatul este ca şi în cazul variabilei de mediu a sistemului PATH: o listă de directoare separate prin două puncte în Unix, sau punct şi virgulă în Windows.

Example#1 include_path în Unix

include_path=".:/php/includes"

Example#2 include_path în Windows

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

Utilizarea unui . în calea de includere permite includeri relative, deoarece desemnează directorul curent.

doc_root string

"Directorul root" al PHP de pe server. Este utilizat numai dacă nu este vid. Dacă PHP este configurat cu modul securizat, nici un fişier din afara acestui director nu este servit. Dacă PHP nu a fost compilat cu FORCE_REDIRECT, trebuie să stabiliţi doc_root dacă rulaţi PHP în calitate de CGI cu orice web server (în afară de IIS). Alternativa este de a utiliza configuraţia cgi.force_redirect de mai jos.

user_dir string

Denumirea de bază a directorului utilizat într-un director de bază al utilizatorului pentru fişierele PHP, spre exemplu public_html.

extension_dir string

În care director PHP ar trebui să caute extensiile încărcate dinamic. Accesaţi de asemenea: enable_dl, şi dl().

extension string

Care extensie dinamică trebuie încărcată atunci când PHP este lansat.

cgi.check_shebang_line boolean

Controlează dacă CGI PHP verifică existenţa liniei ce începe cu #! (shebang) la începutul scriptului ce va fi rulat. Această linie poate fi necesară dacă script-ul susţine rularea atât în calitate de script independent, cât şi ca PHP CGI. PHP în mod CGI trece peste această linie şi ignoră conţinutul ei dacă această directivă e activată.

cgi.fix_pathinfo boolean

Oferă susţinerea PATH_INFO/PATH_TRANSLATED reale pentru CGI. Comportamentul precedent al PHP era de a stabili PATH_TRANSLATED în SCRIPT_FILENAME şi de a nu analiza care este PATH_INFO. Pentru mai multe informaţii despre PATH_INFO, vedeţi specificările CGI. Stabilirea valorii 1 va cauza PHP CGI să-şi corecteze căile pentru a se conforma specificaţiilor. Stabilirea valorii 0 cauzează PHP să se comporte ca mai înainte. Valoarea implicită este zero. Dumneavoastră ar trebui să vă corectaţi script-urile ca să utilizeze SCRIPT_FILENAME şi nu PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect este necesar pentru a oferi securitate la rularea PHP în calitate de CGI cu majoritatea serverelor web. Dacă nu este definită, PHP implicit activează această directivă. Puteţi să o dezectivaţi la propriul risc.

Notă: Utilizatorii Windows: puteţi să dezactivaţi fără primejdie această directivă pentru IIS, de fapt trebuie să faceţi aceasta. Pentru ca OmniHTTPD sau Xitami să funcţioneze trebuie să o dezactivaţi.

cgi.redirect_status_env string

Dacă cgi.force_redirect este activată şi nu rulaţi web server-ele Apache sau Netscape (iPlanet), s-ar putea să fie necesar să stabiliţi o variabilă de mediu, pe care PHP o va căuta pentru a şti dacă e OK de a continua execuţia.

Notă: Stabilirea acestei variabile ar putea cauza probleme se securitate, întâi clarificaţi ce doriţi să realizaţi.

fastcgi.impersonate string

FastCGI sub IIS (pe sisteme bazate pe WINNT) susţin posibilitatea de a juca rolul tichetelor de securitate ale clientului apelant. Aceasta îi permite IIS să definească contextul de securitate sub care rulează cererea. mod_fastcgi sub Apache nu susţine în prezent (03/17/2002) această facilitate. Stabiliţi valoarea 1 la rularea sub IIS. Implicit este zero.

cgi.rfc2616_headers int

Indică PHP ce tip de antete să utilizeze la trimiterea codului de răspuns HTTP. Dacă este stabilită în 0, PHP trimite un antet Status: care este susţinut de Apache şi alte servere web. Când această opţiune este stabilită în 1, PHP va trimite antete ce se conformează cu » RFC 2616. Schimbaţi valoarea din 0 numai dacă cunoaşteţi ce faceţi.

Încărcarea fişierelor

Opţiunile de configurare a încărcării fişierelor
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL în PHP <= 4.2.3. Disponibil începând cu PHP 4.0.3.
upload_tmp_dir NULL PHP_INI_SYSTEM  
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL în PHP <= 4.2.3.

Iată o explicaţie pe scurt a directivelor de configurare.

file_uploads boolean

Dacă să permită, sau nu încărcări de fişiere prin HTTP. Accesaţi de asemenea directivele upload_max_filesize, upload_tmp_dir şi post_max_size.

În cazul utilizării unui integer, valoarea este măsurată în baiţi. De asemenea puteţi utiliza notaţia prescurtată, după cum este descris în acest FAQ.
upload_tmp_dir string

Directorul temporar utilizat pentru stocarea fişierelor la încărcare. Trebuie să aibă drept de înscriere pentru utilizatorul cu care rulează PHP. Dacă nu este specificat, PHP va folosi directorul implicit al sistemului.

upload_max_filesize integer

Mărimea maximă a unui fişier încărcat.

În cazul utilizării unui integer, valoarea este măsurată în baiţi. De asemenea puteţi utiliza notaţia prescurtată, după cum este descris în acest FAQ.

SQL general

Opţiunile de configurare ale SQL general
Denumirea Valoarea implicită Poate fi schimbată în Istoria schimbărilor
sql.safe_mode "0" PHP_INI_SYSTEM  

Iată o explicaţie pe scurt a directivelor de configurare.

sql.safe_mode boolean

Dacă este activată, funcţiile de conectare la baze de date care utilizează valori implicite, le vor utiliza pe acestea, în locul argumentelor furnizate. Pentru a afla valorite implicite, citiţi documentaţia funcţiei de conectare pentru baza de date respectivă.

Directivele de configurare ale debugger-ului

Precauţie

Numai PHP 3 are implementat un debugger implicit, pentru mai multe informaţii, accesaţi Depistarea erorilor (debugging) în PHP.

debugger.host string

Numele DNS sau adresa IP a serverului utilizat de către debugger.

debugger.port string

Numărul portului utilizat de către debugger.

debugger.enabled boolean

Indică dacă debugger-ul este activat.