While the manual says that the file specified by auto_prepend_file is included as if it were called by include(), in fact the file is included as if it were called by require().
In other words, if PHP cannot find the file that you specify with auto_prepend_file, it will throw a fatal error.
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
| Nome | Default | Modificabile | Storico dei cambiamenti |
|---|---|---|---|
| async_send | "0" | PHP_INI_ALL |
Parametri del linguaggio
| Nome | Default | Modificabile | Storico dei cambiamenti |
|---|---|---|---|
| short_open_tag | "1" | PHP_INI_ALL | PHP_INI_ALL in PHP 4.0.0. PHP_INI_PERDIR in PHP < 5.3.0 |
| 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_tagboolean -
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 dishort_open_tag. Dal PHP 5.4.0,<?=è sempre disponibile. - 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.
-
precisioninteger - Il numero di cifre significative usato nella visualizzazione dei numeri in virgola mobile.
-
serialize_precisioninteger - Il numero di cifre significative salvato nella serializzazione dei numeri in virgola mobile.
-
y2k_complianceboolean - Forza la compatibilità con l'anno 2000 (ciò causa problemi con browser non compatibili)
-
allow_call_time_pass_referenceboolean -
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_phpboolean -
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). Sono 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 influisce anche sul risultato di phpinfo() in quanto, se disabilitato, il logo PHP e i crediti non sono visualizzati.
Vedere anche php_logo_guid() e phpcredits().
-
disable_functionsstring -
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_classesstring -
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_modeboolean -
Abilita la compatibilità con lo Zend Engine 1 (PHP 4). Ciò influisce sulle funzioni di clonazione, di cast (oggetti senza proprietà castati a
FALSEo 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.
AvvisoQuesta funzionalità è DEPRECATA e RIMOSSA dal PHP 5.3.0.
-
zend.multibyteboolean -
Abilita l'analisi dei file sorgente con codifica multibyte.
-
zend.script_encodingstring -
Questo valore verrà utilizzato a mento che non sia presente una direttiva declare(encoding=...) all'inizio dello script.
-
zend.signal_checkboolean -
Controlla prila dello shutdown gli handler dei segnali che sono stati sostituiti.
-
detect_unicodeboolean -
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_timeoutboolean -
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
| 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_limitinteger -
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
| 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_sizeinteger -
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_ttlinteger -
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
| 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 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 | |
| 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. |
| allow_webdav_methods | "0" | PHP_INI_PERDIR |
Breve descrizione dei parametri di configurazione.
-
track_varsboolean -
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.outputstring -
Il separatore degli argomenti utilizzato nelle URL genarate dal PHP.
-
arg_separator.inputstring -
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_orderstring -
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.
AvvisoIn 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_orderstring -
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_jitboolean -
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.
AvvisoL'utilizzo delle variabili SERVER e ENV è impostato al momento della compilazione. Quindi usarle attraverso, per esempio, variabili dinamiche non porterà alla loro inizializzazione.
-
register_globalsboolean -
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_globalsnon 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.AvvisoQuesta funzionalità è DEPRECATA dal PHP 5.3.0 e RIMOSSA dal PHP 5.4.0.
-
register_argc_argvboolean - Indica al PHP se dichiarare le variabili argv & argc (che contengono le informazioni GET). Vedere anche command line.
-
register_long_arraysboolean -
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à è DEPRECATA dal PHP 5.3.0 e RIMOSSA dal PHP 5.4.0.
-
enable_post_data_readingboolean - 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_sizeinteger -
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_orderstring -
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:
Questo parametro non è disponibile in PHP 4. Al suo posto utilizzare variables_order.
-
auto_prepend_filestring -
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_filestring -
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_mimetypestring -
-
default_charsetstring -
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_databoolean -
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".
-
allow_webdav_methodsboolean -
Permette la gestione delle richieste http di WebDAV all'interno di script PHP (ad esempio. PROPFIND, PROPPATCH, MOVE, COPY, etc.). Questo parametro non esisteva prima di PHP 4.3.2. Se si vuole ricevere i dati post di queste richieste, occorre impostare anche always_populate_raw_post_data.
Vedere anche: magic_quotes_gpc, magic_quotes_runtime e magic_quotes_sybase.
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_pathstring -
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.
-
open_basedirstring -
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_SEPARATORcome separatore indipendentemente dal sistema operativo. -
doc_rootstring -
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_dirstring -
Il nome di base della directory utilizzata come home directory degli utenti per i file PHP, ad esempio public_html .
-
extension_dirstring -
Directory in cui il PHP cerca i moduli caricabili dinamicamente. Vedere anche: enable_dl, e dl().
-
extensionstring -
Quale modulo dinamico caricare quando il PHP viene avviato.
-
zend_extensionstring -
Percorso assoluto all'estensione Zend caricabile dinamicamente (per esempio APD) da caricare all'avvio di PHP.
-
zend_extension_debugstring -
Variante di zend_extension per le estensioni compilate con le informazioni di debug.
-
zend_extension_debug_tsstring -
Variante di zend_extension per le estensioni compilate con informazioni di debug e thread safety prima di PHP 5.3.0.
-
zend_extension_tsstring -
Variante di zend_extension per le estensioni compilate con thread safety.
-
cgi.check_shebang_lineboolean -
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_pathinfoboolean -
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_redirectboolean -
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_envstring -
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_headersint -
Indica al PHP quale tipo di intestazione utilizzare quando si inviano risposte HTTP. Se impostato a 0, il PHP invia una intestazione 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. Lasciare il parametro a 0 a meno che non si sappia cosa si sta facendo.
-
fastcgi.impersonatestring -
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.loggingboolean -
Abilita il logging di SAPI qundo si usa FastCGI. È abilitato di default.
File Uploads
| 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_uploadsboolean 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_dirstring -
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_filesizeinteger -
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_uploadsinteger -
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
| Nome | Default | Modificabile | Storico dei cambiamenti |
|---|---|---|---|
| sql.safe_mode | "0" | PHP_INI_SYSTEM |
Breve descrizione dei parametri di configurazione.
-
sql.safe_modeboolean -
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
| 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_warningboolean -
Questa direttiva mostra il warning del Windows CRT se abilitata. Questi warning erano visualizzati di default fino al PHP 5.4.0.
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
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.
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\"
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.
For 'short_open_tag',
though it is marked as PHP_INI_ALL in changable column,
you should note the CHANGE_LOG column also:
PHP_INI_ALL in PHP <= 4.0.0.
PHP_INI_PERDIR in PHP < 5.3.0
So as of 4.0, it will not work if you wanna use
ini_set('short_open_tag') to change it's value on the fly.
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.
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.
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!
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
the ini-setting "detect_unicode" is indeed "zend.detect_unicode" (according to the phpinfo of my 5.4.4)
auto_globals_jit setting is also affecting $_REQUEST superglobal in 5.3 It is not explicitly stated in documentation.
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.
note that when you turn on zend.multibyte,you should change mbstring internal encoding to match the script encoding.
example:
(php.ini)
zend.multibyte = On
zend.script_encoding = utf-8
;note this:
mbstring.internal_encoding = utf-8
another example:
(php.ini)
zend.multibyte = On
(script)
<?php
declare(encoding = 'utf-8');
ini_set('mbstring.internal_encoding', 'utf-8');
//now do your work...
?>
A handy trick to pick up parse errors in test_file.php if you can't set display_errors in php.ini or use .htaccess:
<?php
error_reporting (E_ALL);
ini_set ('display_errors', true);
include('./test_file.php');
?>
"post_max_size"
"[..]This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. <form action="edit.php?processed=1">, and then checking if $_GET['processed'] is set."
using PHP 4.4.8 it seems that only the $_POST array will be empty in case of the file is largen than post_max_size.
so above mentioned method does not work in my case.
i need to use $_POST['processed'] instead of $_GET['processed']
If you are having trouble getting the auto_prepend_file to work with the command line interface make sure that you have set it in the cli specific php.ini and that the read permission is set correctly for that php.ini file.
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();
?>
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 "&"? 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)
"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
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.
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.
When display_errors is off, PHP will send an HTTP 500 result header on a fatal error. This is usefull when working with AJAX applications.
If you want to display the upload limit without knowing the server configuration, this may be useful:
<?php
function let_to_num($v){ //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case)
$l = substr($v, -1);
$ret = substr($v, 0, -1);
switch(strtoupper($l)){
case 'P':
$ret *= 1024;
case 'T':
$ret *= 1024;
case 'G':
$ret *= 1024;
case 'M':
$ret *= 1024;
case 'K':
$ret *= 1024;
break;
}
return $ret;
}
$max_upload_size = min(let_to_num(ini_get('post_max_size')), let_to_num(ini_get('upload_max_filesize')));
echo "Maximum upload file size is ".($max_upload_size/(1024*1024))."MB.";
?>
Do note however that this limit is not completely reliable; there are other factors which need to be taken into account, such as any other $_POST data and their size, the memory limit, and the script time limit. This does, however, give some rough limit, and helps you avoid "Doh!" problems where you can't figure out why your file won't upload. :)
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.
