Ova funkcija prikazuje tabelu koja sadrži mnogo korisnih informacija o php postavkama, instaliranim modulima, konfiguraciji lokalnog servera, varijablama okruženja, verziji OS-a, putanjama, HTTP zaglavljima, PHP licenci itd.
Funkcija phpinfo se koristi prilikom provjere sistema, jer svaki server na mreži ima svoje jedinstvene postavke. Ako je skripta dobro radila na jednom serveru i prestala raditi na drugom, onda je vrijedno provjeriti postavke konfiguracije novog servera pomoću ove funkcije.
Najlakši način za korištenje ove funkcije je kreiranje zasebne datoteke:
Prikazaće stranicu poput ove:
Slika 1. Funkcija phpinfo() radi.
A dole se nalaze još četiri ekrana sa informacijama.
phpinfo je funkcija koja prikazuje kompletne informacije o trenutnoj PHP konfiguraciji.
Ime (konstantno) | Značenje | Opis |
---|---|---|
INFO_GENERAL | 1 | Opće informacije o konfiguraciji, php.ini lokacija, informacije o web serveru, sistemu itd. |
INFO_CREDITI | 2 | Informacije o PHP programerima. Takođe se može dobiti pomoću funkcije phpcredits(). |
INFO_CONFIGURATION | 4 | Informacije o trenutnim vrijednostima glavnih i lokalnih PHP direktiva. Oni se također mogu dobiti pomoću funkcije ini_get(). |
INFO_MODULI | 8 | Učitani moduli i njihova podešavanja. Pogledajte također get_loaded_extensions() . |
INFO_OKRUŽENJE | 16 | Informacije o varijablama okruženja, koje su također dostupne u $_ENV. |
INFO_VARIABLES | 32 | Izlazi sve unapred definisane varijable iz EGPCS-a (okruženje, GET, POST, kolačić, server). |
INFO_LICENSE | 64 | Informacije o PHP licenci. |
INFO_ALL | -1 | Izlazi sve gore navedeno. |
Možete vidjeti da phpinfo funkcija sadrži EGPCS podatke, tako da se može koristiti za otklanjanje grešaka.
Vrijednosti su bitne, tako da su korišteni brojevi 2, 4, 8, 16, 32 i 64.
Primjeri korištenja phpinfo() s argumentima:
Informacije koje pruža funkcija phpinfo() mogu koristiti napadači da naškode vašoj web lokaciji. Stoga se datoteke s ovom funkcijom moraju izbrisati.
2010. godine, poznati ruski izvor za programere, Habrahabr, objavio je članak koji je predstavio podatke iz vrlo zanimljive studije. Ispostavilo se da 4,69% ruskih sajtova sadrži datoteku phpinfo.php sa funkcijom phpinfo. U to vrijeme, RuNet se sastojao od 36.804 lokacije, 1.725 je imalo potencijalne ranjivosti.
Ako samo trebate saznati koja je verzija PHP-a na serveru, možete koristiti funkciju phpversion.
Svaki softver koji želite da pokrenete na svom web serveru ima određene zahtjeve koje mora ispuniti. Na primjer, WordPress zahtijeva PHP verziju 5.2.4 ili noviju. Ovisno o serveru, možete promijeniti neke PHP postavke, druge je, naprotiv, zabranjeno mijenjati, međutim, informacije o svim njima mogu se pronaći u phpinfo datoteci. U ovom vodiču ćete naučiti kako kreirati phpinfo datoteku i saznati vrijednosti i status PHP modula. Ovo također može biti korisno za dobivanje informacija o vašem hosting računu kao što su max_execution_time, memory_limit, post_max_size i drugi.
Prije nego što započnete ovaj vodič, trebat će vam sljedeće:
- Pristup vašem hosting kontrolnom panelu ili FTP nalogu
Opcija 1 - Provjera PHP informacija putem kontrolne table vašeg hostinga
Na Hostingeru, PHP informacije o vašem nalogu mogu se naći u Napredno → Informacije o PHP-u. Ovo je veoma zgodna funkcija, jer nećete morati da kreirate dodatne fajlove na svom hostingu.
Nakon toga, bit ćete preusmjereni na stranicu sa svim potrebnim informacijama o vašoj PHP verziji, modulima i vrijednostima. Da biste tražili određeni modul ili funkciju, koristite pretragu pritiskom na prečicu na tastaturi CTRL+F.
Čestitamo! Naučili ste kako da pristupite svojim php informacijama preko Hostinger kontrolne table.
Opcija 2 - Provjera PHP informacija kreiranjem datoteke phpinfo.php
Ne brinite ako vaša hosting platforma ne podržava funkciju prikazanu u Opcija 1. Isti rezultat možete postići kreiranjem posebne datoteke unutar vašeg hosting naloga. Datoteka će takođe prikazati sve informacije o vašem PHP-u i biće joj dostupna preko pretraživača.
Korak 2.1 - Kreirajte phpinfo fajl
Postoji nekoliko načina za kreiranje phpinfo datoteke. U ovom vodiču ćemo koristiti . Međutim, isti rezultat se može postići kreiranjem datoteke na vašem lokalnom računalu, a zatim uploadom datoteke na server putem .
Prijavite se na kontrolnu tablu svog hostinga i otvorite File manager. Kliknite na dugme Novi fajl da kreirate novi fajl.
U prvom polju navedite putanju na kojoj će se kreirati novi fajl. Dalje, na terenu Novo ime datoteke enter phpinfo.php. U većini slučajeva možete ostaviti putanju nepromijenjenu /public_html. U tom slučaju, datoteka će biti kreirana u korijenskom direktoriju vaše stranice.
Korak 2.2 - Uređivanje datoteke
U ovoj fazi već imate prazan fajl phpinfo.php u katalogu public_html. Kopirajte sljedeći kod u datoteku i kliknite na ikonu Sačuvaj u lijevom uglu ekrana.
To je to, uspješno ste kreirali PHP datoteku koja će prikazati sve parametre vašeg PHP-a. Kao što je ranije spomenuto, isti rezultat se može postići korištenjem:
- Koristite bilo koji uređivač teksta i kreirajte datoteku phpinfo.php na vašem računaru.
- Dodajte sljedeći kod u datoteku:
- Prenesite datoteku koristeći FTP u svoj direktorij public_html.
Korak 2.3 - Provjera PHP informacija putem pretraživača
Ako je sve urađeno kako treba, sada možete pristupiti kreiranoj datoteci dodavanjem na kraj imena vaše domene /strhpinfo.php. npr. http://yourdomain.ru/phpinfo.php
Trebali biste vidjeti sličan rezultat kada otvorite ovu stranicu putem pretraživača:
Na ovoj stranici ćete moći vidjeti sve vaše PHP postavke.
Zaključak
Dovršavanjem ovog vodiča naučili ste kako da kreirate phpinfo fajl i proverite informacije o vašim PHP postavkama. Ove informacije su korisne ako želite da saznate svoje postavke hostinga ili da pokrenete softver koji zahteva određene PHP module.
(PHP 3, PHP 4, PHP 5)
phpinfo - prikazuje mnogo informacija o PHP-u.
Opis
int phpinfo()
Prikazuje veliku količinu informacija o trenutnom PHP statusu. Ovo uključuje informacije o opcijama i ekstenzijama PHP kompilacije, PHP verziji, serveru i informacijama o okruženju (ako je kompajlirano kao modul), PHP okruženju, verziji OS-a, stazama, varijablama opcija glavne i lokalne konfiguracije, HTTP i PHP zaglavlja licence. Pošto je svaki sistem drugačije konfigurisan, phpinfo() se obično koristi za proveru konfiguracionih postavki i dostupnosti unapred definisanih varijabli na datom sistemu. Phpinfo() je takođe važan uslužni program za otklanjanje grešaka, jer sadrži sve EGPCS podatke (okruženje, GET, POST, Cookie, Server). Izlaz se može specijalizirati prenošenjem jednog ili više od sljedećeg konstantan bitne vrijednosti sumirane u opcionom parametru what. Također možete kombinirati odgovarajuće konstantne ili bitne vrijednosti koristeći operaciju.
Tabela 1. phpinfo() opcije
Napomena: dijelovi prikazanih informacija su onemogućeni kada je postavka konfiguracije expose_php postavljena na isključeno. Ovo uključuje PHP i Zend logotipe i kredite. Također
Ako vam je potrebno da pošaljete datoteke ne direktno preko web servera, već koristeći PHP (na primjer, za prikupljanje statistike preuzimanja), pogledajte kat.
1. Koristite readfile()
Dobra stvar kod ove metode je to što radi izvan kutije. Vi samo trebate napisati svoju vlastitu funkciju slanja datoteka (malo izmijenjen primjer iz službene dokumentacije):Funkcija file_force_download($file) ( if (file_exists($file)) ( // resetirajte PHP izlazni bafer kako biste izbjegli prelijevanje memorije dodijeljene skripti // ako se to ne uradi, datoteka će se u potpunosti pročitati u memoriju! ako (ob_get_level()) ( ob_end_clean(); ) // prisiljava pretraživač da prikaže prozor za spremanje zaglavlja datoteke ("Opis sadržaja: Prijenos datoteke"); header("Tip sadržaja: aplikacija/oktet-tok") ; header("Content-Disposition: attachment; filename =" . basename($file)); header("Content-Transfer-Encoding: binary"); header("Ističe: 0"); header("Cache- Control: must-revalidate"); header("Pragma: public"); header("Content-Length: " . filesize($file)); // pročitajte datoteku i pošaljite je korisniku readfile($file); Izlaz; ) )
Čak i velike datoteke se mogu poslati na ovaj način, jer će PHP pročitati datoteku i odmah je dati korisniku u dijelovima. Dokumentacija jasno kaže da readfile() ne treba stvaraju probleme sa memorijom.
Posebnosti:
- Datoteka se čita u interni bafer funkcije readfile(), čija je veličina 8kB (zahvaljujući 2fast4rabbit)
2. Pročitajte i pošaljite datoteku ručno
Metoda koristi isti Drupal kada šalje datoteke iz privatnog sistema datoteka (datoteke nisu direktno dostupne putem veza):Funkcija file_force_download($file) ( if (file_exists($file)) ( // resetirajte PHP izlazni bafer kako biste izbjegli prelijevanje memorije dodijeljene skripti // ako se to ne učini, datoteka će se u potpunosti pročitati u memoriju! ako (ob_get_level()) ( ob_end_clean(); ) // prisiljava pretraživač da prikaže prozor za spremanje zaglavlja datoteke ("Opis sadržaja: Prijenos datoteke"); header("Tip sadržaja: aplikacija/oktet-tok") ; header("Content-Disposition: attachment; filename =" . basename($file)); header("Content-Transfer-Encoding: binary"); header("Ističe: 0"); header("Cache- Control: must-revalidate"); header("Pragma: public"); header("Content-Length: " . filesize($file)); // pročitajte datoteku i pošaljite je korisniku ako ($fd = fopen ($file, "rb")) ( while (!feof($ fd)) ( print fread($fd, 1024); ) fclose($fd); ) izlaz; ) )
Posebnosti:
- Skripta čeka dok se cijeli fajl ne pročita i preda korisniku.
- Omogućava uštedu memorije servera
3. Koristite modul web servera
3a. Apache
Modul XSendFile vam omogućava da pošaljete datoteku samom Apache-u koristeći posebno zaglavlje. Postoje verzije za Unix i Windows, pod verzijama 2.0.*, 2.2.* i 2.4.*U postavkama hosta morate omogućiti presretanje zaglavlja pomoću direktive:
XSendFile On
Također možete odrediti bijelu listu direktorija u kojima se datoteke mogu obraditi. Važno: ako imate server baziran na Windows-u, putanja mora uključivati slovo pogona velikim slovima.
Opis mogućih opcija na web stranici programera: https://tn123.org/mod_xsendfile/
Primjer slanja fajla:
Funkcija 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)); exit; ) )
3b. Nginx
Nginx može slati datoteke izvan kutije putem posebnog zaglavlja.Za ispravan rad, morate zabraniti pristup folderu direktno preko konfiguracijske datoteke:
lokacija /zaštićena/ (interna; korijen /neki/put;)
Primjer slanja datoteke (datoteka mora biti u /some/path/protected direktoriju):
Funkcija 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; ) )
Više informacija na stranici službene dokumentacije
Posebnosti:
- Skripta se završava odmah nakon završetka svih instrukcija
- Fizički, datoteku šalje sam modul web servera, a ne PHP
- Minimalna potrošnja memorije i serverskih resursa
- Maksimalne performanse
Ažuriranje: Habrowser ilyaplot daje dobar savjet da je bolje poslati ne application/octet-stream, već pravi mime tip datoteke. Na primjer, ovo će omogućiti pretraživaču da ubaci potrebne programe u dijalog za spremanje datoteka.