Informazioni php. Come creare un file Phpinfo e controllare le informazioni PHP. Leggiamo e inviamo il file manualmente

(PHP 3, PHP 4, PHP 5)

phpinfo - Stampa molte informazioni su PHP.

Descrizione

int phpinfo()

Stampa molte informazioni sullo stato corrente di PHP. Ciò include informazioni su opzioni ed estensioni di compilazione PHP, versione PHP, informazioni su server e ambiente (se compilato come modulo), ambiente PHP, versione del sistema operativo, percorsi, variabili master e locali delle opzioni di configurazione, intestazioni HTTP e licenza PHP. Poiché ogni sistema è configurato in modo diverso, phpinfo () viene solitamente utilizzato per verificare le impostazioni di configurazione e la disponibilità di variabili predefinite su un dato sistema. Phpinfo () è anche un'importante utility di debug in quanto contiene tutti i dati EGPCS (ambiente, GET, POST , Cookie, Server). Un output può essere specializzato passando uno o più dei seguenti costante valori di bit riassunti nel parametro opzionale what. Puoi anche combinare i corrispondenti valori costanti o bit con un'operazione.

Tabella 1. Opzioni phpinfo()
Nome (costante) Valore Descrizione INFO_GENERAL1 Stringa di configurazione, posizione php.ini, data di build / build, server Web, sistema, ecc. INFO_CREDITS2 PHP 4 Crediti. Vedi anche phpcredits() .INFO_CONFIGURATION4 Valori locali e master correnti delle direttive php. Vedere anche ini_get() .INFO_MODULES8 Moduli caricati e le relative impostazioni INFO_ENVIRONMENT16Environment Informazioni sulle variabili disponibili anche in $ _ENV .INFO_VARIABLES32 Mostra tutte le variabili predefinite da EGPCS (Environment, GET, POST, Cookie, ServerP64 e License_LICENSE. Vedere anche le domande frequenti sulla licenza .INFO_ALL-1 Tutto quanto sopra, questa è l'impostazione predefinita.

Nota: parti delle informazioni visualizzate sono disabilitate quando l'impostazione di configurazione esporre_php è disattivata. Ciò include i loghi ei crediti PHP e Zend. anche

Se hai bisogno di servire file non direttamente dal server web, ma usando PHP (ad esempio, per raccogliere statistiche di download), per favore, sotto cat.

1. Utilizzo del file di lettura ()

Il metodo è buono perché funziona dalla scatola. Devi solo scrivere la tua funzione per l'invio di un file (un esempio leggermente modificato dalla documentazione ufficiale):

Funzione file_force_download ($ file) (if (file_exists ($ file)) (// svuota il buffer di output PHP per evitare l'overflow della memoria allocata per lo script // se ciò non viene fatto il file verrà letto completamente in memoria! If ( ob_get_level ()) ( ob_end_clean ();) // forza il browser a mostrare l'intestazione della finestra di salvataggio del file ("Content-Description: File Transfer"); header ("Content-Type: application / octet-stream"); header ("Content-Disposition: attachment; filename = ". basename ($ file)); header (" Content-Transfer-Encoding: binary "); header (" Scadenza: 0 "); header (" Cache-Control: deve -revalidate "); header (" Pragma: public "); header (" Content-Length: ". filesize ($ file)); // legge il file e lo invia all'utente readfile ($ file); esci;) )
Anche file di grandi dimensioni possono essere inviati in questo modo, poiché PHP leggerà il file e lo consegnerà immediatamente all'utente in parti. La documentazione afferma chiaramente che readfile () non dovrebbe creare problemi di memoria.

Peculiarità:

  • Il file viene letto nel buffer interno della funzione readfile(), che ha una dimensione di 8 kB (grazie a 2fast4rabbit)

2. Leggiamo e inviamo il file manualmente

Il metodo utilizza lo stesso Drupal quando si inviano file da un privato file system(i file non sono disponibili direttamente dai link):

Funzione file_force_download ($ file) (if (file_exists ($ file)) (// svuota il buffer di output PHP per evitare l'overflow della memoria allocata per lo script // se ciò non viene fatto il file verrà letto completamente in memoria! If ( ob_get_level ()) ( ob_end_clean ();) // forza il browser a mostrare l'intestazione della finestra di salvataggio del file ("Content-Description: File Transfer"); header ("Content-Type: application / octet-stream"); header ("Content-Disposition: attachment; filename = ". basename ($ file)); header (" Content-Transfer-Encoding: binary "); header (" Scadenza: 0 "); header (" Cache-Control: deve -revalidate "); header (" Pragma: public "); header (" Content-Length: ". filesize ($ file)); // legge il file e lo invia all'utente if ($ fd = fopen ($ file ," rb ")) (while (! feof ($ fd)) (print fread ($ fd, 1024);) fclose ($ fd);) exit;))
Peculiarità:

  • Lo script attende che l'intero file venga letto e restituito all'utente.
  • Salva la memoria del server

3. Usiamo il modulo server web

3a. Apache
Il modulo XSendFile consente ad Apache di inviare il caricamento del file utilizzando un'intestazione speciale. Ci sono versioni per Unix e Windows, sotto la versione 2.0.*, 2.2.* e 2.4.*

Nelle impostazioni dell'host, è necessario abilitare l'intercettazione dell'intestazione utilizzando la direttiva:
XSendFile On
Puoi anche autorizzare le directory in cui è possibile elaborare i file. Importante: se disponi di un server basato su Windows, il percorso deve includere una lettera di unità maiuscola.

Descrizione delle possibili opzioni sul sito Web dello sviluppatore: https://tn123.org/mod_xsendfile/

Esempio di invio di un file:

Funzione file_force_download ($ file) (if (file_exists ($ file)) (header ("X-SendFile:". Realpath ($ file)); header ("Content-Type: application / octet-stream"); ​​​​header (" Content-Disposition: attachment; filename = ". Basename ($ file)); esci;))

3b. Nginx
Nginx è in grado di inviare file out of the box tramite un'intestazione speciale.

Per un corretto funzionamento è necessario negare l'accesso alla cartella direttamente tramite il file di configurazione:
posizione / protetto / (interno; root / alcuni / percorso;)
Un esempio di invio di un file (il file deve trovarsi nella directory /some/path/protected):

Funzione file_force_download ($ file) (if (file_exists ($ file)) (header ("X-Accel-Redirect:". $ File); header ("Content-Type: application / octet-stream"); ​​​​header ( "Content -Disposition: attachment; filename = ". Basename ($ file)); exit;))
Maggiori informazioni sulla pagina della documentazione ufficiale

Peculiarità:

  • Lo script termina immediatamente dopo che tutte le istruzioni sono state eseguite
  • Fisicamente, il file viene inviato dal modulo del server web stesso, non da PHP
  • Consumo minimo di memoria e risorse del server
  • Massima performance

Aggiornare: Habrayuser ilyaplot dà un buon consiglio che è meglio inviare non application / octet-stream, ma il vero tipo mime del file. Ad esempio, ciò consentirà al browser di sostituire i programmi desiderati nella finestra di dialogo di salvataggio del file.

Questa funzione visualizza una tabella contenente molti informazioni utili impostazioni php, moduli installati, configurazione server locale, variabili ambientali, versione del sistema operativo, sui percorsi, sulle intestazioni HTTP, sulle licenze PHP, ecc.

La funzione phpinfo viene utilizzata durante il controllo del sistema, poiché ogni server sulla rete ha le proprie impostazioni uniche. Se lo script ha funzionato correttamente su un server e ha smesso di funzionare su un altro, è necessario controllare le impostazioni di configurazione del nuovo server utilizzando questa funzione.

Il modo più semplice per utilizzare questa funzione è creare un file separato:

Verrà visualizzata una pagina come questa:

Figura 1. Operazione della funzione phpinfo().

E le informazioni sono ancora circa quattro schermate in basso.

phpinfo è una funzione che visualizza informazioni complete sulla configurazione PHP corrente.

Funzione PHP phpinfo
Nome (costante)Significato Descrizione
INFO_GENERALE 1 Informazioni generali sulla configurazione, posizione php.ini, informazioni sul server Web, informazioni sul sistema, ecc.
INFO_CREDITI 2 Informazioni sugli sviluppatori PHP. Può anche essere ottenuto utilizzando la funzione phpcredits().
INFO_CONFIGURAZIONE 4 Informazioni sui valori correnti delle direttive PHP principali e locali. Possono anche essere ottenuti usando la funzione ini_get().
INFO_MODULI 8 Moduli caricati e loro impostazioni. Vedi anche get_loaded_extensions().
INFO_AMBIENTE 16 Informazioni sulle variabili d'ambiente, disponibili anche in $ _ENV.
INFO_VARIABILI 32 Emette tutte le variabili predefinite da EGPCS (Ambiente, GET, POST, Cookie, Server).
INFO_LICENZA 64 Informazioni sulla licenza PHP.
INFO_ALL -1 Emette tutto quanto sopra.

Puoi vedere che la funzione phpinfo contiene dati EGPCS, quindi può essere utilizzata per scopi di debug.

I valori sono valori di bit, quindi vengono utilizzati i numeri 2, 4, 8, 16, 32 e 64.

Esempi di utilizzo di phpinfo() con argomenti:

Le informazioni fornite dalla funzione phpinfo() possono essere utilizzate dagli intrusi per danneggiare il tuo sito. Pertanto, i file con questa funzione devono essere eliminati.

Nel 2010, la nota risorsa russa per i programmatori Habrahabr ha pubblicato un articolo contenente i dati di uno studio molto interessante. Si è scoperto che il 4,69% dei siti russi contiene un file phpinfo.php con una funzione phpinfo. A quel tempo, il Runet consisteva di 36804 siti, 1725 aveva una potenziale vulnerabilità.

Se hai solo bisogno di scoprire quale versione di PHP è sul server, puoi utilizzare la funzione phpversion.

Qualunque Software che vuoi eseguire sul tuo server web ha determinati requisiti che deve soddisfare. Ad esempio, WordPress richiede la versione PHP 5.2.4 o successiva. A seconda del server, è possibile modificare alcune impostazioni PHP, altre invece non possono essere modificate, tuttavia è possibile ottenere informazioni su tutte nel file phpinfo. In questo tutorial imparerai come creare un file phpinfo e scoprire i valori e lo stato dei moduli PHP. Può anche essere utile per ottenere informazioni sul tuo account di hosting come max_execution_time, memory_limit, post_max_size e altri.

Prima di iniziare questo tutorial, è necessario quanto segue:

  • Accesso al tuo pannello di controllo di hosting o account FTP

Opzione 1 - Verifica delle informazioni PHP tramite il pannello di controllo dell'hosting

Su Hostinger, le informazioni PHP del tuo account sono disponibili sotto Avanzate -> Informazioni PHP... Questa è una funzione molto comoda, poiché non dovrai creare file aggiuntivi sul tuo hosting.

Successivamente, verrai indirizzato a una pagina con tutte le informazioni necessarie sulla tua versione PHP, moduli e valori. Per cercare un modulo o una funzione specifici, usa la ricerca premendo la scorciatoia da tastiera CTRL + F.

Congratulazioni! Hai imparato come accedere alle tue informazioni php attraverso il tuo pannello di controllo di Hostinger.

Opzione 2 - Controlla le informazioni PHP creando un file phpinfo.php

Non preoccuparti se la tua piattaforma di hosting non supporta la funzionalità mostrata in opzione 1... Lo stesso risultato può essere ottenuto creando un file speciale all'interno del tuo account di hosting. Il file mostrerà anche tutte le informazioni sul tuo PHP e sarà accessibile tramite il browser.

Passaggio 2.1 - Creazione del file phpinfo

Esistono diversi modi per creare il file phpinfo. In questo tutorial, useremo. Tuttavia, lo stesso risultato può essere ottenuto creando un file sul computer locale e quindi caricando il file sul server tramite.

Accedi al pannello di controllo del tuo hosting e apri File manager... Fare clic sul pulsante Nuovo file per creare un nuovo file.

Nel primo campo, specificare il percorso in cui verrà creato il nuovo file. Inoltre, nel campo Nuovo nome file accedere phpinfo.php... Nella maggior parte dei casi, puoi lasciare il percorso invariato / public_html... In questo caso, il file verrà creato nella directory principale del tuo sito.

Passaggio 2.2 - Modifica del file

A questo punto hai già un file vuoto phpinfo.php nel catalogo public_html... Copia il seguente codice in un file e fai clic sull'icona Salva nell'angolo sinistro dello schermo.

Ecco fatto, hai creato con successo un file PHP che visualizzerà tutte le tue opzioni PHP. Come accennato in precedenza, lo stesso risultato può essere ottenuto con:

  1. Usa qualsiasi editor di testo e creare un file phpinfo.php sul tuo computer.
  2. Aggiungi il seguente codice al file:
  1. Carica il file usando FTP nella tua directory public_html.

Passaggio 2.3 - Verifica delle informazioni PHP tramite browser

Se tutto è stato fatto correttamente, ora puoi accedere al file generato aggiungendo alla fine del tuo nome di dominio / Phpinfo.php... Per esempio, http: //tuodominio.ru/phpinfo.php

Dovresti vedere un risultato simile quando apri questa pagina tramite un browser:

In questa pagina potrai vedere tutte le tue impostazioni PHP.

Conclusione

Dopo aver completato questo tutorial, hai imparato come creare un file phpinfo e controllare le informazioni sulle impostazioni PHP. Questa informazione è utile se vuoi conoscere le tue impostazioni di hosting o eseguire software che richiede determinati moduli PHP.

Pubblicazioni correlate

  • Conti del deserto nero (RU) Conti del deserto nero (RU)

    Account esteso GameNet Vantaggi di un account esteso: Possibilità di giocare con due account (in due finestre) contemporaneamente in, e ....

  • Canale televisivo La cui stella non è in TV adesso? Canale televisivo La cui stella non è in TV adesso?

    Dov'è il canale televisivo Zvezda, perché non è in TV? Molti abbonati dell'operatore Kol TV hanno dovuto affrontare un problema: il loro canale televisivo Zvezda preferito è scomparso ....