Hvordan lage en Phpinfo-fil og sjekke PHP-informasjon. Lever filer effektivt ved hjelp av PHP Attentive info php

(PHP 3, PHP 4, PHP 5)

phpinfo - viser mye informasjon om PHP.

Beskrivelse

int phpinfo()

Viser en stor mengde informasjon om gjeldende PHP-status. Dette inkluderer informasjon om PHP-kompileringsalternativer og utvidelser, PHP-versjon, server- og miljøinformasjon (hvis kompilert som en modul), PHP-miljø, OS-versjon, stier, master- og lokaler, HTTP- og PHP-lisenshoder. Siden hvert system er konfigurert annerledes, brukes vanligvis phpinfo() til å sjekke konfigurasjonsinnstillinger og tilgjengeligheten av forhåndsdefinerte variabler på et gitt system. Phpinfo() er også et viktig feilsøkingsverktøy, siden det inneholder alle EGPCS-dataene (Environment, GET, POST, informasjonskapsel, server). Utgangen kan spesialiseres ved å bestå ett eller flere av følgende konstant bitverdier summert i den valgfrie what-parameteren. Du kan også kombinere tilsvarende konstant- eller bitverdier ved å bruke operasjonen.

Tabell 1. phpinfo() alternativer
Navn (konstant) Verdi Beskrivelse INFO_GENERAL1 Konfigurasjonsstreng, php.ini-plassering, byggedato, webserver, system osv. INFO_CREDITS2PHP Credits 4.Se. også phpcredits() .INFO_CONFIGURATION4Gjeldende lokale og masterverdier for php-direktiver.Se. also ini_get() .INFO_MODULES8 Lastede moduler og deres tilhørende innstillinger.INFO_ENVIRONMENT16Environment Variabelinformasjon, også tilgjengelig i $_ENV .INFO_VARIABLES32Viser alle forhåndsdefinerte variabler fra EGPCS (Environment, GET, POST, Cookie, Server). også lisensier faq .INFO_ALL-1Alt ovenfor. Dette er standardverdien.

Merk: deler av informasjonen som vises er deaktivert når expose_php-konfigurasjonsinnstillingen er satt til av . Dette inkluderer PHP- og Zend-logoer og kreditter. Se. Også

Noen programvare, som du vil kjøre på webserveren din, har visse krav som den må oppfylle. For eksempel krever WordPress PHP versjon 5.2.4 eller høyere. Avhengig av serveren kan du endre noen PHP-innstillinger, andre, tvert imot, er forbudt å endre, men informasjon om dem alle kan finnes i phpinfo-filen. I denne opplæringen lærer du hvordan du lager en phpinfo-fil og finner ut verdiene og statusen til PHP-moduler. Dette kan også være nyttig for å få informasjon om hostingkontoen din, for eksempel max_execution_time, memory_limit, post_max_size og andre.

Før du starter denne veiledningen, trenger du følgende:

  • Tilgang til vertskontrollpanelet eller FTP-kontoen din

Alternativ 1 - Sjekke PHP-informasjon gjennom vertskontrollpanelet

Hos Hostinger kan du finne PHP-informasjonen for kontoen din i Avansert → PHP-informasjon. Dette er en veldig praktisk funksjon, siden du ikke trenger å opprette flere filer på hostingen din.

Etter dette vil du bli tatt til en side med all nødvendig informasjon om din PHP-versjon, moduler og verdier. For å søke etter en bestemt modul eller funksjon, bruk søket ved å trykke på hurtigtasten CTRL+F.

Gratulerer! Du har lært hvordan du får tilgang til php-informasjonen din gjennom Hostinger-kontrollpanelet.

Alternativ 2 - Sjekke PHP-informasjon ved å lage en phpinfo.php-fil

Ikke bekymre deg hvis vertsplattformen din ikke støtter funksjonen vist i valg 1. Det samme resultatet kan oppnås ved å opprette en spesiell fil inne i hostingkontoen din. Filen vil også vise all informasjon om PHP og vil være tilgjengelig via nettleseren.

Trinn 2.1 - Lag en phpinfo-fil

Det er flere måter å lage en phpinfo-fil på. I denne opplæringen skal vi bruke . Det samme resultatet kan imidlertid oppnås ved å opprette en fil på din lokal datamaskin og videre opplasting av filen til serveren via .

Logg på vertskontrollpanelet og åpne Filbehandler . Klikk på knappen Ny fil for å lage en ny fil.

I det første feltet angir du banen der den skal opprettes ny fil. Neste, i feltet Nytt filnavn Tast inn phpinfo.php. I de fleste tilfeller kan du la banen stå uendret /public_html. I dette tilfellet vil filen bli opprettet i rotkatalogen på nettstedet ditt.

Trinn 2.2 - Redigere filen

På dette stadiet har du allerede en tom fil phpinfo.php i katalogen public_html. Kopier følgende kode til en fil og klikk på ikonet Lagre i venstre hjørne av skjermen.

Det er det, du har opprettet PHP-fil som vil vise alle PHP-alternativene dine. Som nevnt tidligere kan det samme resultatet oppnås ved å bruke:

  1. Bruk hvilken som helst tekstredigerer og lag en fil phpinfo.php på datamaskinen din.
  2. Legg til følgende kode i filen:
  1. Last opp filen ved hjelp av FTP til katalogen din public_html.

Trinn 2.3 - Sjekke PHP-informasjon via nettleser

Hvis alt ble gjort riktig, kan du nå få tilgang til den opprettede filen ved å legge til på slutten av domenenavnet ditt /shpinfo.php. f.eks. http://dittdomene.ru/phpinfo.php

Du bør se et lignende resultat når du åpner denne siden via en nettleser:

På denne siden vil du kunne se alle PHP-innstillingene dine.

Konklusjon

Ved å fullføre denne opplæringen har du lært hvordan du lager en phpinfo-fil og sjekker informasjonen din. PHP-innstillinger. Denne informasjonen er nyttig hvis du vil vite hostinginnstillingene eller kjøre programvare som krever visse PHP-moduler.

Hvis du trengte å sende filer ikke direkte fra webserveren, men fra bruker PHP(for eksempel for å samle nedlastningsstatistikk), vennligst under kat.

1. Bruk readfile()

Det som er bra med denne metoden er at den fungerer rett ut av esken. Du trenger bare å skrive din egen filsendingsfunksjon (litt modifisert eksempel fra den offisielle dokumentasjonen):

Funksjon file_force_download($file) ( if (file_exists($file)) ( // tilbakestill bufferen PHP-utgang for å unngå å overfylle minnet som er tildelt skriptet // hvis dette ikke gjøres, vil filen bli lest inn i minnet fullstendig! if (ob_get_level()) ( ob_end_clean(); ) // tving nettleseren til å vise vinduet for lagring av filoverskriften("Innholdsbeskrivelse: Filoverføring"); header("Content-Type: application/octet-stream"); ​​​​header("Content-Disposition: attachment; filename=" . basename($file)); header("Content-Transfer-Encoding: binært "); header("Utløper: 0"); header("Cache-Control: must-revalidate"); header("Pragma: public"); header("Innhold-Length: ". filesize($file)); // les filen og send den til brukeren readfile($file); exit; ) )
Selv store filer kan sendes på denne måten, siden PHP vil lese filen og umiddelbart gi den til brukeren i deler. Dokumentasjonen sier tydelig at readfile() burde ikke skape hukommelsesproblemer.

Egenskaper:

  • Filen leses inn i den interne bufferen til readfile()-funksjonen, hvis størrelse er 8kB (takk 2fast4rabbit)

2. Les og send filen manuelt

Metoden bruker samme Drupal når du sender filer fra en privat filsystem(filer er ikke tilgjengelig direkte via lenker):

Funksjon file_force_download($file) ( if (file_exists($file)) ( // tilbakestill PHP-utdatabufferen for å unngå å overfylle minnet som er allokert for skriptet // hvis dette ikke gjøres, vil filen bli lest inn i minnet fullstendig! hvis (ob_get_level()) ( ob_end_clean(); ) // tving nettleseren til å vise vinduet for lagring av filoverskriften("Innholdsbeskrivelse: Filoverføring"); header("Innholdstype: applikasjon/oktettstrøm") ; ​​header("Innholdsdisposisjon: vedlegg; filnavn =" . basenavn($fil)); header("Innholdsoverføringskoding: binær"); header("Utløper: 0"); header("Cache- Kontroll: must-revalidate"); header("Pragma: public"); header("Content-Length: " . filesize($file)); // les filen og send den til brukeren hvis ($fd = fopen ($file, "rb")) ( while (!feof($ fd)) ( print fread($fd, 1024); ) fclose($fd); ) exit; ) )
Egenskaper:

  • Skriptet venter til hele filen er lest og gitt til brukeren.
  • Lar deg lagre serverminne

3. Bruk webservermodulen

3a. Apache
XSendFile-modulen lar deg sende en fil til selve Apache ved hjelp av en spesiell overskrift. Det finnes versjoner for Unix og Windows, under versjon 2.0.*, 2.2.* og 2.4.*

I vertsinnstillingene må du aktivere headeravlytting ved å bruke direktivet:
XSendFile på
Du kan også angi en hvit liste over kataloger der filer kan behandles. Viktig: hvis du har en serverbasert Windows-bane må inneholde en stor stasjonsbokstav.

Beskrivelse av mulige alternativer på utviklerens nettsted: https://tn123.org/mod_xsendfile/

Eksempel på å sende en fil:

Funksjon file_force_download($file) ( if (file_exists($file)) ( header("X-SendFile: " . realpath($file)); header("Innholdstype: applikasjon/oktettstrøm"); (" Content-Disposition: attachment; filename=" . basename($file)); exit; ) )

3b. Nginx
Nginx kan sende filer ut av esken via en spesiell header.

For korrekt drift må du nekte tilgang til mappen direkte gjennom konfigurasjonsfilen:
plassering /beskyttet/ (internt; rot /noen/bane;)
Eksempel på sending av en fil (filen må være i katalogen /some/path/protected):

Funksjon file_force_download($file) ( if (file_eksisterer($fil)) ( header("X-Accel-Redirect: " . $file); header("Innholdstype: applikasjon/oktett-strøm"); ​​header( "Innhold -Disposisjon: vedlegg; filnavn=" . basename($fil)); exit; ) )
Mer informasjon på den offisielle dokumentasjonssiden

Egenskaper:

  • Skriptet avsluttes umiddelbart etter at alle instruksjoner er fullført
  • Fysisk sendes filen av selve webservermodulen, og ikke av PHP
  • Minimalt forbruk av minne og serverressurser
  • Maksimal ytelse

Oppdater: Habrowser ilyaplot gir gode råd om at det er bedre å ikke sende applikasjon/oktett-stream, men den ekte mime-typen til filen. For eksempel vil dette tillate nettleseren å erstatte nødvendige programmer inn i fillagringsdialogen.




Topp