PHP Unconference Europe 2015

Descrizione dei parametri core di php.ini

Questo elenco contiene i parametri 'core' del php.ini che sono utilizzati per configurare il PHP. Le impostazioni gestite dai vari moduli sono elencate e dettagliate nelle pagine di documentazione dei rispettivi moduli; informazioni sui parametri per le sessioni, ad esempio, possono essere troavte nelle pagine delle sessioni.

Httpd Options

Httpd Options
Nome Default Modificabile Storico dei cambiamenti
async_send "0" PHP_INI_ALL  

Parametri del linguaggio

Parametri del linguaggio e configurazioni varie
Nome Default Modificabile Storico dei cambiamenti
short_open_tag "1" PHP_INI_PERDIR PHP_INI_ALL in PHP 4.0.0. PHP_INI_PERDIR in PHP >= 4.0.1.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL in PHP 4.0.0.
precision "14" PHP_INI_ALL  
serialize_precision "17" PHP_INI_ALL Disponibile dal PHP 4.3.2. Fino al PHP 5.3.5, il valore predefinito era 100.
y2k_compliance "1" PHP_INI_ALL Rimosso in PHP 5.4.0.
allow_call_time_pass_reference "1" PHP_INI_PERDIR PHP_INI_ALL in PHP 4.0.0. Rimosso in PHP 5.4.0.
disable_functions "" php.ini only Disponibile da PHP 4.0.1.
disable_classes "" php.ini only Disponibile da PHP 4.3.2.
exit_on_timeout "" PHP_INI_ALL Disponibile dal PHP 5.3.0.
expose_php "1" solo php.ini  
zend.multibyte "0" PHP_INI_ALL Disponibile dal PHP 5.4.0
zend.script_encoding NULL PHP_INI_ALL Disponibile dal PHP 5.4.0
zend.signal_check "0" PHP_INI_SYSTEM Disponibile dal PHP 5.4.0
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponibile dal PHP 5.0.0. Rimosso dal PHP 5.3.0
detect_unicode "1" PHP_INI_ALL Disponibile da PHP 5.1.0. Questa funzione deprecata sarà sicuramente rimossa in futuro.

Breve descrizione dei parametri di configurazione.

short_open_tag boolean

Indica se abilitare o meno la forma abbreviata dei tag di apertura del PHP (<? ?>). Se si desidera utilizzare il PHP in combinazione con l'XML, occorre disabilitare questa opzione per poter utilizzare <?xml ?>. In alternativa si può stampare il testo con il PHP, ad esempio: <?php echo '<?xml version="1.0"?>'; ?>. Inoltre, se disabilitato, occorre utilizzare la versione lunga dei tag di apertura del PHP (<?php ?>).

Nota:

Questo parametro influisce anche su <?= prima del PHP 5.4.0, che è identica a <? echo. L'uso di questa abbreviazione richiedeva l'abilitazione di short_open_tag. Dal PHP 5.4.0, <?= è sempre disponibile.

asp_tags boolean
Abilita l'uso dei tags tipo ASP <% %> in aggiunta agli usuali <?php ?>. Questi includono la scorciatoia per scrivere il valore delle variabili <%= $value %>. Per maggiori informazioni vedere Escaping from HTML.
precision integer
Il numero di cifre significative usato nella visualizzazione dei numeri in virgola mobile.
serialize_precision integer
Il numero di cifre significative salvato nella serializzazione dei numeri in virgola mobile.
y2k_compliance boolean
Forza la compatibilità con l'anno 2000 (ciò causa problemi con browser non compatibili)
allow_call_time_pass_reference boolean

Decide se avvertire o meno quando gli argomenti delle funzioni sono passati per riferimento al momento della chiamata. Il metodo consigliato è specificare quale parametro debba essere passato per riferimento al momento della dichiarazione della funzione. Si suggerisce di impostare l'opzione a Off per essere certi che lo script funzioni correttamente, in modo da predisporsi alle future modifiche del linguaggio (si riceverà un warning ogni volta che si utilizza questa opzione).

Passare i valori per riferimento al momento della chiamata della funzione viene sconsigliato per motivi di chiarezza del codice. La funzione può modificare il parametro in modo non previsto se non indica questo come passato per riferimento. Per evitare effetti secondari inattesi, è meglio indicare soltanto al momento della dichiarazione della funzione quali parametri saranno passati per riferimento.

Vedere anche la sezione sui riferimenti

Storico di allow_call_time_pass_reference
Versione Descrizione
5.4.0 Rimosso da PHP.
5.3.0 Emette un errore di livello E_DEPRECATED.
5.0.0 Deprecata, e genera un errore di livello E_COMPILE_WARNING.

expose_php boolean

Indica se il PHP deve indicare il fatto che è installato su un server, il che include la versione di PHP all'interno delle intestazioni HTTP (es. X-Powered-By: PHP/5.3.7). Nelle versioni precedenti a PHP 5.5.0 erano esposti anche i guid del logo PHP, quindi apponendoli alla URL di un sito basato su PHP si visualizza il corrispondente logo (es. » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Questo influiva anche sul risultato di phpinfo() in quanto, se disabilitato, il logo PHP e i crediti non erano visualizzati.

Nota:

A partire da PHP 5.5.0 questi guid e la funzione php_logo_guid() sono stati rimossi da PHP e i guid sono stati sostituiti con URI dati. Quindi, l'accesso al logo PHP mediante l'apposizione del guid alla URL non funziona più. Allo stesso modo, la disabilitazione di expose_php non modifica la visualizzazione del logo PHP in phpinfo().

Vedere anche php_logo_guid() e phpcredits().

disable_functions string

Questa direttiva permette di disabilitare alcune funzioni per ragioni di sicurezza. Riceve una lista di nomi di funzione separati da virgole. disable_functions non è modificata da Safe Mode.

Solo le funzioni interne possono essere disattivate usando questa direttiva. Le funzioni definite dall'utente non sono interessate.

Questa direttiva deve essere impostata in php.ini pertanto non può essere usata in httpd.conf.

disable_classes string
questa direttiva permette di disabilitare alcune classi per ragioni di sicurezza. Riceve una lista di nomi di classi separati da virgole. disable_classes inon è modificata da Safe Mode. Questa direttiva deve essere impostata in php.ini pertanto non può essere usata in httpd.conf.

Nota: Nota sulla dsponibilità
Questa direttiva è disponibile dal PHP 4.3.2

zend.ze1_compatibility_mode boolean

Abilita la compatibilità con lo Zend Engine 1 (PHP 4). Ciò influisce sulle funzioni di clonazione, di cast (oggetti senza proprietà castati a FALSE o 0) e di confronto degli oggetti. In questo modo, gli oggetti sono di default passati per valore e non per riferimento.

Vedere anche la sezione intitolata Migrazione da PHP 4 a PHP 5.

Avviso

Questa funzionalità è DEPRECATA e RIMOSSA dal PHP 5.3.0.

zend.multibyte boolean

Abilita l'analisi dei file sorgente con codifica multibyte.

zend.script_encoding string

Questo valore verrà utilizzato a mento che non sia presente una direttiva declare(encoding=...) all'inizio dello script.

zend.signal_check boolean

Controlla prila dello shutdown gli handler dei segnali che sono stati sostituiti.

detect_unicode boolean

Cerca il BOM (Byte Order Mark) e controlla se il file contiene dei caratteri multibyte validi. Questa indagine è effettuata prima di processare __halt_compiler(). Disponibile solo in Zend Multibyte mode.

exit_on_timeout boolean

Questa è una direttiva Apache1 mod_php-only che termina forzatamente un processo figlio di Apache in caso di ub timeout di esecuzione di PHP. Questo timeout provoca una chiamata interna longjmp() Apache1 che può lasciare alcune estensioni in uno stato inconsistente. Terminando il processo qualsiasi lock sulla memoria verrà rimosso.

Limiti per le risorse

Limiti per le risorse
Nome Default Modificabile Storico dei cambiamenti
memory_limit "128M" PHP_INI_ALL "8M" prima di PHP 5.2.0, "16M" in PHP 5.2.0

Breve descrizione dei parametri di configurazione.

memory_limit integer

Questo parametro imposta la dimensione massima in byte di memoria occupabile dallo script. Questo aiuta a impedire che script scritti male utilizzino tutta la memoria del server. Si noti che per non avere limitazioni di memoria si deve impostare questo parametro a -1.

Prima del PHP 5.2.1, Per potere utilizzare questo parametro occorreva abilitarlo al momento della compilazione usando --enable-memory-limit . Ciò era pure richiesto per definire le funzioni memory_get_usage() e memory_get_peak_usage() prima della version 5.2.1.

Quando un integer è usato, il valore è misurato in byte. Si può anche usare una notazione abbreviata come descritto in questa FAQ.

Vedi anche: max_execution_time.

Regolazione della Performance

Regolazione della Performance
Nome Default Modificabile Storico dei cambiamenti
realpath_cache_size "16K" PHP_INI_SYSTEM Disponibile da PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponibile da PHP 5.1.0.

Breve descrizione dei parametri di configurazione.

realpath_cache_size integer

Determina la dimensione della cache di realpath usata da PHP. Questo valore dovrebbe essere aumentato nei sistemi in cui PHP apre molti file, in modo da rispecchiare la quantità di operazioni su file eseguite.

realpath_cache_ttl integer

Durata temporale (in secondi) della validità della cache realpath per un dato file o cartella. Per sistemi con file che cambiano raramente valutare la possibilità di aumentare il valore.

Gestione dei dati

Parametri di configurazione per la gestione dei dati
Nome Default Modificabile Storico dei cambiamenti
track_vars "On" PHP_INI_??  
arg_separator.output "&" PHP_INI_ALL Disponibile da PHP 4.0.5.
arg_separator.input "&" PHP_INI_PERDIR Disponibile da PHP 4.0.5.
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 5.0.5.
request_order "" PHP_INI_PERDIR Disponibile da PHP 5.3.0
auto_globals_jit "1" PHP_INI_PERDIR Disponibile da PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.2.3. Rimosso in PHP 5.4.0.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.2.3.
register_long_arrays "1" PHP_INI_PERDIR Disponibile da PHP 5.0.0. Deprecata in PHP 5.3.0. Rimossa in PHP 5.4.0.
enable_post_data_reading "1" PHP_INI_PERDIR Disponibile da PHP 5.4.0
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM in PHP <= 4.2.3. Disponibile da PHP 4.0.3.
gpc_order "GPC" PHP_INI_ALL Rimossa in PHP 5.0.0.
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.2.3.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL in 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 in PHP <= 4.2.3. Disponibile da PHP 4.1.0.

Breve descrizione dei parametri di configurazione.

track_vars boolean

Se abilitato, le variabili Environment, GET, POST, Cookie, e Server sono recuperabili nei rispettivi array associativi $_ENV, $_GET, $_POST, $_COOKIE e $_SERVER.

Nota: dal PHP 4.0.3, track_vars è sempre impostato a on.

arg_separator.output string

Il separatore degli argomenti utilizzato nelle URL genarate dal PHP.

arg_separator.input string

Lista dei separatori utilizzati dal PHP per la siddivisione dell'URL di input nelle veriabili.

Nota:

Qualsiasi carattere inserito in questo parametro sarà considerato un separatore!

variables_order string

Imposta l'ordine di parsing delle variabili EGPCS (Environment, Get, Post, Cookie e Server). Ad esempio, se variables_order è impostato a "SP" il PHP creerà il superglobals $_SERVER e $_POST, ma non creerà $_ENV, $_GET e $_COOKIE. L'impostazione "" significa che non verranno impostati $link.superglobals;.

se la direttiva deprecata register_globals è attiva, allora variables_order configura anche l'ordine con cui le variabili ENV, GET, POST, COOKIE e SERVER sono popolate nello scope globale. Quindi, per esempio, se variables_order è impostato a "EGPCS", register_globals è abilitato, e sia $_GET['action'] che $_POST['action'] sono impostati, allora $action conterrà il valore di $_POST['action'] dal momento che P compare dopo G nel nostro valore di esempio.

Avviso

In entrambe le SAPI GSI e FastCGI, $_SERVER è popolato anche dai valori dell'environment; S è sempre equivalente a ES a prescindere dalla posizione di E nella direttiva.

Nota:

Anche il contenuto ed ordine di $_REQUEST è modificato da questa direttiva.

request_order string

Descrive l'ordine in cui PHP registra le variabili GET, POST e Cookie variables nell'array _REQUEST. La registrazione è fatta da sinistra a destra, i nuovi valori sostituiscono quelli vecchi.

Se questa direttiva non è impostata, variables_order è utilizzata per i contenuti di $_REQUEST.

Si noti che il file php.ini della distribuzione di default non contiene il 'C' per i cookie, per questioni di sicurezza.

auto_globals_jit boolean

Quando abilitato, le variabili SERVER ed ENV sono create al momento del primo utilizzo (Just In Time) invece che all'avvio dello script. Se queste variabili non sono utilizzate dallo script, impostanto questo parametro ad on si ha un beneficio in termini di performance.

I parametri di PHP register_globals, register_long_arrays e register_argc_argv devono essere disabilitati affinché questa impostazione abbia effetto. Dal PHP 5.1.3 non è necessario avere register_argc_argv disabilitato.

Avviso

L'utilizzo delle variabili SERVER e ENV è impostato al momento della compilazione. Quindi usarle attraverso, per esempio, variabili dinamiche non porterà alla loro inizializzazione.

register_globals boolean

Indica se registrare o meno le variabili EGPCS (Environment, GET, POST, Cookie, Server) come variabili globali.

Dal » PHP 4.2.0, questo parametro è impostato per default a off.

Guardare il capitolo della sicurezza riguardante l'uso di register_globals per maggiori informazioni.

Si ricorda che register_globals non può essere impostato a runtime da (ini_set()). In alternativa, se permesso dal proprio host, si può utilizzare .htaccess. Un esempio di riga .htaccess: php_flag register_globals off.

Nota:

Il parametro register_globals è influenzato da variables_order directive.

Avviso

Questa funzionalità è stata DEPRECATA dal PHP 5.3.0 e RIMOSSA dal PHP 5.4.0.

register_argc_argv boolean
Indica al PHP se dichiarare le variabili argv & argc (che contengono le informazioni GET). Vedere anche command line.
register_long_arrays boolean
Indica al PHP se registrare o meno le variabili lunghe (deprecate) $HTTP_*_VARS, vedere variabili predefinite. Quando viene impostato ad On (default), vengono definite le variabili lunghe, tipo $HTTP_GET_VARS, del PHP. Se non si utilizzano, si consiglia di impostare il parametro ad off per motivi di performance. Al posto di queste, utilizzare le matrici $_GET. Questa impostazione è disponibile dal PHP 5.0.0.
Avviso

Questa funzionalità è stata DEPRECATA dal PHP 5.3.0 e RIMOSSA dal PHP 5.4.0.

enable_post_data_reading boolean
Disabilitando questa opzione le variabili $_POST e $_FILES non sono popolate. L'unico modo per leggere i postdata è quindi quello di usare il wrapper dello stream php://input. Questa soluzione può essere utile nelle richieste via proxy o per processare i dati POST in una maniera più efficiente per la memoria.
post_max_size integer
Imposta la dimensione massima dei dati post. Questa impostazione influenza anche gli upload dei file. Per permettere upload di file di grandi dimensioni, il valore impostato deve essere maggiore di upload_max_filesize. Anche il limite di memoria, memory_limit, se abilitato, può limitare gli upload di file. In termini generali memory_limit dovrebbe essere maggiore di post_max_size. Quando un integer è usato, il valore è misurato in byte. Si può anche usare una notazione abbreviata come descritto in questa FAQ. Se la dimensione dei dati post è maggiore di post_max_size, le variabili superglobale $_POST e $_FILES sono vuote. Questo può essere rilevato in diversi modi, ad esempio passando una variabile $_GET allo script che processa i dati, tipo <form action="edit.php?processed=1">, e verificare se $_GET['processed'] è impostata.

Nota:

PHP permette di usare le abbreviazioni per i valori bit, tra cui K (kilo), M (mega) e G (giga). PHP fa una conversione automatica quando si usano queste abbreviazioni. Si presti attenzione a non eccedere il limite dell'intero signed 32 bit (se si sta usando una versione a 32 bit) poiché questo farà fallire lo script.

gpc_order string

Imposta l'ordine di parsing delle variabili GET/POST/COOKIE. l'impostazione di default per questo parametro è "GPC". Impostare questo a "GP", ad esempio, farà ignorare i cookie al PHP e farà sovrascrivere qualsiasi variabile GET dalla eventuale omonima variabile POST.

Nota:

Questa opzione è stata rimossa in PHP 5.0.0. Al suo posto utilizzare variables_order.

auto_prepend_file string

Indica il nome del file che deve essere parsato prima del file principale. Questo file viene incluso come se fosse chiamato dalla funzione include, pertanto si utilizza il parametro include_path.

Il valore speciale none disabilita la funzione.

auto_append_file string

Specifica il file che deve essere analizzato in automatico dopo il file principale. Il file è incluso come se fosse chiamato dalla funzione include pertanto si utilizza il parametro include_path.

Il valore none disabilita l'auto-appending.

Nota: Se lo script termina con exit(), l'auto-accodamento non viene eseguito.

default_mimetype string

default_charset string

Dalla versione 4.0b4, il PHP invia, per default, la codifica del carattere nell'intestazione Content-type:. Per disabilitare questo invio, lasciare vuoto il parametro.

always_populate_raw_post_data boolean

Valorizza sempre la variabile $HTTP_RAW_POST_DATA contenente i dati grezzi di POST. Altrimenti, la variabile è riempita solo con tipi MIME non riconosciuti dei dati. Comunque, il metodo da preferire per accedere ai dati grezzi di POST è php://input. $HTTP_RAW_POST_DATA non è disponibile con enctype="multipart/form-data".

Vedere anche: magic_quotes_gpc, magic_quotes_runtime e magic_quotes_sybase.

Percorsi e Directory

Parametri di configurazione per percorsi e directory
Nome Default Modificabile Cronologia
include_path ".;/path/to/php/pear" PHP_INI_ALL  
open_basedir NULL PHP_INI_ALL PHP_INI_SYSTEM in PHP < 5.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 only  
zend_extension NULL Solo php.ini  
zend_extension_debug NULL Solo php.ini Disponibile da PHP 5.3.0.
zend_extension_debug_ts NULL Solo php.ini Disponibile da PHP 5.3.0.
zend_extension_ts NULL Solo php.ini Disponibile da PHP 5.3.0.
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponibile da PHP 5.2.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM Disponibile da PHP 4.3.0. PHP_INI_ALL prima di PHP 5.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM Disponibile da PHP 4.2.0. PHP_INI_ALL prima di PHP 5.2.1.
cgi.redirect_status_env NULL PHP_INI_SYSTEM Disponibile da PHP 4.2.0. PHP_INI_ALL prima di PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponibile da PHP 4.3.0.
fastcgi.impersonate "0" PHP_INI_SYSTEM Disponibile da PHP 4.3.0. PHP_INI_ALL prima di PHP 5.2.1.
fastcgi.logging "1" PHP_INI_SYSTEM Disponibile da PHP 4.3.0. PHP_INI_ALL prima di PHP 5.2.1.

Breve descrizione dei parametri di configurazione.

include_path string

Elenco di directory in cui le funzioni require, include, fopen(), file(), readfile() e file_get_contents() cercheranno i file. Il formato è tipo la variabile d'ambiente PATH: una lista di directory separate da due punti in Unix, punto e virgola in Windows.

PHP considera separatamente ogni voce nel percorso d'inclusione, quanto cerca il file da includere. Cerca nel primo percorso, e se non lo trova, cerca nel successivo, finché non trova il file da includere o restituisce un avvertimento oppure un errore. È possibile impostare o modificare il percorso di inclusione a runtime, usando set_include_path().

Example #1 Unix include_path

include_path=".:/php/includes"

Example #2 Windows include_path

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

L'uso di . nel percorso di include indica, negli include relativi, la directory corrente. È più efficiente usare esplicitamente include './file' piuttosto che lasciare che PHP controlli nella direcory correente ad ogni inclusione.

Nota:

Le variabili ENV sono accessibili anche nei file .ini. Di conseguenza è possibile fare riferimento alla cartella home utilizzando ${LOGIN} e ${USER}.

Le variabili d'ambiente possono variare tra le Server API, dal momento che questi ambienti possono essere differenti.

Example #3 include_path su Unix utilizzando la variabile d'ambiente ${USER}

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

open_basedir string

Limita i file che possono essere aperti da PHP ad uno specifico albero di cartelle, contenenti il file stesso. Questo parametro NON È modificato dallo stato del Safe Mode (On o Off).

Quando uno script tenta di aprire un file con, per esempio, fopen() oppure gzopen(), la posizione del file viene controllata. Se il file è fuori dall'albero specificato, PHP si rifiuterà di aprirlo. Tutti i link simbolici sono risolti, quindi non è possibile eludere questa restrizione con un symlink. Se il file non esiste il symlink non può essere risolto e il nome del file è confrontato con open_basedir .

Il valore speciale . indica che l'attuale cartella di lavoro dello script sarà usata come base-directory. Quest è comunque abbastanza pericoloso in quanto la cartella di lavoro dello script può essere cambiata facilmente con chdir().

In httpd.conf, open_basedir può essere disattivato (ad esempio per alcuni host virtuali) nello stesso modo che gli altri parametri di configurazione con "php_admin_value open_basedir none".

Nei sistemi Windows, separare le cartelle con un punto e virgola. In tutti gli altri sistemi, separare le cartelle con un due punti. Come modulo di Apache, i percorsi open_basedir dalle cartelle parenti sono ora automaticamente ereditati.

La restrizione specificata con open_basedir è un nome di cartella da PHP 5.2.16 e 5.3.4. Le versioni precedenti lo usavano come prefisso. Ciò significa che "open_basedir = /dir/incl" permette l'accesso anche a "/dir/include" e "/dir/incls" se esistono. Quando si vuole restringere l'accesso solo alla cartella specificata, apporre uno slash. Per esempio: open_basedir = /dir/incl/

L'impostazione di default è quella di permettere l'apertura di tutti i file.

Nota:

Dal PHP 5.3.0 open_basedir può essere ristretto a run-time. Ciò significa che se open_basedir è impostato a /www/ in php.ini uno script può ulteriormente restringere la configurazione a /www/tmp/ a run-time con ini_set(). Quando si elencano più cartelle, si può usare la costante PATH_SEPARATOR come separatore indipendentemente dal sistema operativo.

doc_root string

La directory radice (root directory) del PHP sul server. Utilizzata solo se compilata. Se il PHP è configurato con il modalità sicura, ignorerà tutti i file al di fuori di questa directory. Se il PHP non è compilato con il parametro FORCE_REDIRECT, si dovrebbe impostare doc_root se si utilizza il PHP come CGI in qualsiasi web server (oltre che IIS). In alternativa utilizzare il seguente parametro cgi.force_redirect.

user_dir string

Il nome di base della directory utilizzata come home directory degli utenti per i file PHP, ad esempio public_html .

extension_dir string

Directory in cui il PHP cerca i moduli caricabili dinamicamente. Vedere anche: enable_dl, e dl().

extension string

Quale modulo dinamico caricare quando il PHP viene avviato.

zend_extension string

Percorso assoluto all'estensione Zend caricabile dinamicamente (per esempio APD) da caricare all'avvio di PHP.

zend_extension_debug string

Variante di zend_extension per le estensioni compilate con le informazioni di debug.

zend_extension_debug_ts string

Variante di zend_extension per le estensioni compilate con informazioni di debug e thread safety prima di PHP 5.3.0.

zend_extension_ts string

Variante di zend_extension per le estensioni compilate con thread safety.

cgi.check_shebang_line boolean

Controlla se il PHP CGI ricerca i caratteri #! (shebang) all'inizio della prima riga dello script. Questa riga potrebbe essere necessaria se lo script deve essere eseguito sia come stand-alone che attraverso il PHP CGI. PHP in CGI salta questa linea e ignora il suo contenuto se questo parametro è attivo.

cgi.fix_pathinfo boolean

Fornisce il reale supporto PATH_INFO/ PATH_TRANSLATED per il CGI. Il precedente comportamento del PHP era di impostare PATH_TRANSLATED a SCRIPT_FILENAME, non curarsi di quale fosse PATH_INFO. Per maggiori dettagli su PATH_INFO, vedere le specifiche CGI. Impostando il parametro a 1, si forza il PHP CGI a correggere il percorso in modo conforme alle specifiche. Impostando il parametro a 0 si forza il PHP a comportarsi nel modo originario. Questa opzione è attiva di default. Si consiglia di correggere gli script affinchè utilizzino SCRIPT_FILENAME piuttosto che PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect è necessario per garantire maggiore sicurezza al PHP eseguito come CGI nella maggior parte dei server web. Non impostando il parametro, il PHP lo imposta a on per default. Può essere impostato ad off a proprio rischio.

Nota:

Nota per gli utenti di Windows: quando si usa IIS questa opzione deve essere disattivata. La stessa indicazione vale per OmniHTTPD o Xitami.

cgi.redirect_status_env string

Se cgi.force_redirect è impostato ad on, e non si utilizza i web server Apache o Netscape (iPlanet), può essere necessario impostare il nome di una variabile di ambiente the il PHP verificherà per sapere se può continuare l'esecuzione.

Nota:

L'impostazione di questa variabile può portare a problemi di sicurezza, fare attenzione a quello che si fa.

cgi.rfc2616_headers int

Indica al PHP quale tipo di intestazione utilizzare quando si inviano risposte HTTP. Se impostato a 0, il PHP invia un'intestazione » RFC 3875 "Status:", che è supportata da Apache ed altri server web. Quando il parametro è impostato a 1, il PHP invia una intestazione conforme alle specifiche indicate in » RFC 2616 .

Se questa opzione è abilitata, e si sta eseguendo PHP in un ambiente CGI (es. PHP-FPM) non si devono utilizzare le intestazioni HTTP di risposta standard RFC 2616, si devono piuttosto utilizzare gli equivalenti RFC 3875, per esempio invece di header("HTTP/1.0 404 Not found"); si deve usare header("Status: 404 Not Found");

Lasciare il parametro a 0 a meno che non si sappia cosa si sta facendo.

fastcgi.impersonate string

FastCGI con IIS (su OS basati su WINNT) offre la possibilità di attivare il contesto di sicurezza del client chiamante. Questo permette a IIS di definire un contesto di sicurezza in cui fare girare la richiesta. Attualmente mod_fastcgi di Apache non supporta questa caratteristica (17/03/2002). Impostare a 1 se si utilizza IIS. Il default è zero.

fastcgi.logging boolean

Abilita il logging di SAPI qundo si usa FastCGI. È abilitato di default.

File Uploads

File Uploads Configuration Options
Nome Default Modificabile Storico dei cambiamenti
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL in PHP <= 4.2.3. Disponibile da PHP 4.0.3.
upload_tmp_dir NULL PHP_INI_SYSTEM  
max_input_nesting_level 64 PHP_INI_PERDIR Disponibile da PHP 5.3.9.
max_input_vars 1000 PHP_INI_PERDIR Disponibile da PHP 5.3.9.
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.2.3.
max_file_uploads 20 PHP_INI_SYSTEM Disponibile da PHP 5.2.12.

Breve descrizione dei parametri di configurazione.

file_uploads boolean o integer

Indica se abilitare o meno gli upload di file. Vedere anche i parametri upload_max_filesize, upload_tmp_dir e post_max_size.

Quando un integer è usato, il valore è misurato in byte. Si può anche usare una notazione abbreviata come descritto in questa FAQ.
upload_tmp_dir string

Directory temporanea utilizzata per il transito dei file durante l'upload. Deve avere i permessi di scrittura per gli utenti utilizzati dal PHP per girare. Se non indicata il PHP utilizzerà il default di sistema.

Se la directory specificata non ha i permessi di scrittura, PHP ripiega sulla directory temporanea di sistema. Se open_basedir è attivo, la directory demporanea di sistema deve avere i diritti di scrittura, per permettere un upload.

upload_max_filesize integer

La dimensione massima di un file inviato.

Quando un integer è usato, il valore è misurato in byte. Si può anche usare una notazione abbreviata come descritto in questa FAQ.
max_file_uploads integer

Il numero massimo di file che si possono caricare in upload simultaneamente. A partire da PHP 5.3.4, i campi upload lasciati vuoti durante l'invio non sono presi in conto da questo limite.

General SQL

Parametri di configurazione generali per SQL
Nome Default Modificabile Storico dei cambiamenti
sql.safe_mode "0" PHP_INI_SYSTEM  

Breve descrizione dei parametri di configurazione.

sql.safe_mode boolean

Se acceso, le funzioni di connessione al databse che specificano valori di default useranno questi valori al posto degli argomenti forniti. Per conoscere i valori di default consultare la documentazione dello specifico database.

Windows Specific

Opzioni di confugurazione specifiche per Windows
Nome Default Modificabile Storico dei cambiamenti
windows_show_crt_warning "0" PHP_INI_ALL Disponibile da PHP 5.4.0.

Breve descrizione dei parametri di configurazione.

windows_show_crt_warning boolean

Questa direttiva mostra il warning del Windows CRT se abilitata. Questi warning erano visualizzati di default fino al PHP 5.4.0.

add a note add a note

User Contributed Notes 15 notes

up
2
txyoji at yahoo dot com
11 months 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
up
4
david dot tulloh at infaze dot com dot au
9 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.

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.
up
1
kghbln
2 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 (< 5.3.4).

On Windows you use ; as the seperator.
up
3
leo at korfu dot cz
8 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
up
2
csg at DEL_THISdiatom dot de
9 years ago
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.
up
2
amolitor at molitor-design dot com
4 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 5.2.12 source (see main/fopen_wrappers.c around line 503).

This one had me goin' for a while.
up
1
rlammers at linuxmail dot org
3 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 120kb characters php returns a blank screen, even if the max_post_size is 8M.

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.
up
1
mrok at mrok dot com
5 years ago
Note that on some Unix systems (i.e. PHP 5.1.6 on Centos 5.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.
up
0
iko at vision dot sk
2 years ago
auto_globals_jit setting is also affecting $_REQUEST superglobal in 5.3 It is not explicitly stated in documentation.
up
0
AntonioK
3 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.
up
-1
michael dot buergi at gmx dot net
1 year ago
the ini-setting "detect_unicode" is indeed "zend.detect_unicode" (according to the phpinfo of my 5.4.4)
up
-1
lanny at freemail dot hu
7 years ago
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!
up
-7
Manu
9 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.
up
-9
Steven Hartland
2 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 5.3.10 with application/json
up
-12
JL
3 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\"
To Top