PHP 7 - Configurazione file PHP.INI
Il file di configurazione PHP, php.ini, è il modo finale e immediato per influenzare le funzionalità di PHP. Il file php.ini viene letto ogni volta che PHP viene inizializzato. In altre parole, httpd viene riavviato per la versione del modulo o con ogni esecuzione di script per la versione CGI. Se la modifica non viene visualizzata, ricordarsi di interrompere e riavviare httpd. Se ancora non viene visualizzato, utilizzare phpinfo () per controllare il percorso di php.ini.
Il file di configurazione è ben commentato e completo. Le chiavi fanno distinzione tra maiuscole e minuscole, i valori delle parole chiave no; gli spazi bianchi e le righe che iniziano con il punto e virgola vengono ignorati. I valori booleani possono essere rappresentati da 1/0, Sì / No, On / Off o True / False. I valori predefiniti in php.ini-dist risulteranno in una ragionevole installazione PHP che può essere modificata in seguito.
Qui stiamo spiegando le impostazioni importanti in php.ini di cui potresti aver bisogno per il tuo PHP Parser.
short_open_tag = Off
I tag aperti brevi hanno questo aspetto: <? ?>. Questa opzione deve essere impostata suOff se vuoi usare le funzioni XML.
safe_mode = Off
Se è impostato su ON, probabilmente hai compilato PHP con il flag --enable-safe-mode. La modalità provvisoria è più rilevante per l'uso CGI. Vedere la spiegazione nella sezione "Opzioni in fase di compilazione CGI" fornita precedentemente in questo capitolo.
safe_mode_exec_dir = [DIR]
Questa opzione è rilevante solo se la modalità provvisoria è ON; può anche essere impostato con il flag --with-exec-dir durante il processo di compilazione di Unix. PHP in modalità provvisoria esegue solo binari esterni da questa directory. L'impostazione predefinita è / usr / local / bin. Questo non ha nulla a che fare con la pubblicazione di una normale pagina Web PHP / HTML.
safe_mode_allowed_env_vars = [PHP_]
Questa opzione imposta le variabili di ambiente che gli utenti possono modificare in modalità provvisoria. L'impostazione predefinita è solo quelle variabili precedute da "PHP_". Se questa direttiva è vuota, la maggior parte delle variabili è modificabile.
safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
Questa opzione imposta le variabili di ambiente che gli utenti non possono modificare in modalità provvisoria, anche se safe_mode_allowed_env_vars è impostato in modo permissivo.
disable_functions = [funzione1, funzione2 ...]
Una gradita aggiunta alla configurazione PHP4 e perpetuata in PHP5 è la possibilità di disabilitare le funzioni selezionate per motivi di sicurezza. In precedenza, ciò richiedeva la modifica manuale del codice C da cui era stato creato PHP. Il filesystem, il sistema e le funzioni di rete dovrebbero probabilmente essere i primi ad andare perché consentire la capacità di scrivere file e modificare il sistema su HTTP non è mai un'idea così sicura.
max_execution_time = 30
La funzione set_time_limit () non funzionerà in modalità provvisoria. Pertanto, questo è il modo principale per creare un timeout di script in modalità provvisoria. In Windows, è necessario interrompere in base alla memoria massima consumata piuttosto che al tempo. Puoi anche utilizzare l'impostazione del timeout di Apache per il timeout, ma ciò si applicherà anche ai file non PHP sul sito.
error_reporting = E_ALL & ~ E_NOTICE
Il valore predefinito è E_ALL & ~ E_NOTICE, tutti gli errori tranne gli avvisi. I server di sviluppo dovrebbero essere impostati almeno sul valore predefinito; solo i server di produzione dovrebbero considerare un valore inferiore.
error_prepend_string = [" "]
Con il suo fermalibro, error_append_string, questa impostazione ti consente di rendere i messaggi di errore di un colore diverso rispetto all'altro testo.
warn_plus_overloading = Off
Questa impostazione genera un avviso se l'operatore + viene utilizzato con le stringhe, come in un valore del modulo.
variabili_ordine = EGPCS
Questa impostazione di configurazione sostituisce gpc_order. Entrambi sono ora deprecati insieme a register_globals. Imposta l'ordine delle diverse variabili: Environment, GET, POST, COOKIE e SERVER (aka Built-in). Puoi cambiare questo ordine in giro. Le variabili verranno sovrascritte successivamente nell'ordine da sinistra a destra, con quella più a destra che vincerà ogni volta la mano. Ciò significa che, se si lascia l'impostazione predefinita e si utilizza lo stesso nome per una variabile di ambiente, una variabile POST e una variabile COOKIE, la variabile COOKIE avrebbe quel nome alla fine del processo. Nella vita reale, questo non accade molto.
register_globals = Off
Questa impostazione consente di decidere se si desidera registrare le variabili EGPCS come globali. Questo è ora deprecato e, a partire da PHP4.2, questo flag è impostato suOff, per impostazione predefinita. Usa invece gli array superglobali. Tutti i principali elenchi di codici in questo libro utilizzano array superglobali.
gpc_order = GPC
Questa impostazione è stata deprecata.
magic_quotes_gpc = Attivato
Questa impostazione evita le virgolette nei dati GET / POST / COOKIE in arrivo. Se si utilizzano molti moduli che possono essere inviati a se stessi o ad altri moduli e visualizzano i valori dei moduli, potrebbe essere necessario impostare questa direttiva su On o prepararsi all'uso di addlashes () su dati di tipo stringa.
magic_quotes_runtime = Off
Questa impostazione evita le virgolette nel database in entrata e nelle stringhe di testo. Ricorda che SQL aggiunge barre alle virgolette singole e apostrofi quando memorizza le stringhe e non le rimuove quando le restituisce. Se questa impostazione è Off, sarà necessario utilizzare striplashes () durante l'output di qualsiasi tipo di dati stringa da un database SQL. Se magic_quotes_sybase è impostato su On, deve essere Off.
magic_quotes_sybase = Off
Questa impostazione evita le virgolette singole nel database in entrata e nelle stringhe di testo con virgolette singole in stile Sybase anziché con barre rovesciate. Se magic_quotes_runtime è impostato su On, deve essere Off.
auto-prepend-file = [path / to / file]
Se qui viene specificato un percorso, PHP deve includerlo automaticamente () all'inizio di ogni file PHP. Includere restrizioni sul percorso si applicano.
auto-append-file = [percorso / a / file]
Se qui viene specificato un percorso, PHP deve includere automaticamente () alla fine di ogni file PHP, a meno che non si esca utilizzando la funzione exit (). Includere restrizioni sul percorso si applicano.
include_path = [DIR]
Se imposti questo valore, potrai solo includere o richiedere file da queste directory. La directory include generalmente si trova nella root del documento. Questo è obbligatorio se stai eseguendo in modalità provvisoria. Impostalo su .in, per includere i file dalla stessa directory in cui si trova lo script. Più directory sono separate da due punti:.: / Usr / local / apache / htdocs: / usr / local / lib.
doc_root = [DIR]
Se stai usando Apache, hai già impostato una root del documento per questo server o host virtuale in httpd.conf. Imposta questo valore qui se stai usando la modalità provvisoria o se vuoi abilitare PHP solo su una parte del tuo sito (ad esempio, solo in una sottodirectory della tua radice Web).
file_uploads = [on / off]
Attiva questo flag se caricherai file utilizzando lo script PHP.
upload_tmp_dir = [DIR]
Non rimuovere il commento da questa riga a meno che tu non abbia compreso le implicazioni dei caricamenti HTTP!
session.save-handler = file
Tranne in rare circostanze, non vorrai modificare questa impostazione. Quindi non toccarlo.
ignore_user_abort = [On / Off]
Questa impostazione controlla cosa succede se un visitatore del sito fa clic sul pulsante Stop del browser. L'impostazione predefinita è On, il che significa che lo script continua a essere eseguito fino al completamento o al timeout. Se l'impostazione viene modificata in Off, lo script verrà interrotto. Questa impostazione funziona solo in modalità modulo, non in CGI.
mysql.default_host = hostname
L'host del server predefinito da utilizzare quando ci si connette al server del database se non viene specificato nessun altro host.
mysql.default_user = nome utente
Il nome utente predefinito da utilizzare quando ci si connette al server database se non viene specificato un altro nome.
mysql.default_password = password
La password predefinita da utilizzare durante la connessione al server del database se non viene specificata un'altra password.