(PHP 3, PHP 4, PHP 5)

phpinfo - PHP-ийн талаар маш их мэдээллийг харуулдаг.

Тодорхойлолт

int phpinfo()

Гаралт их тоо PHP-ийн одоогийн байдлын талаарх мэдээлэл. Үүнд PHP эмхэтгэлийн сонголтууд болон өргөтгөлүүд, РНР хувилбар, сервер болон орчны мэдээлэл (хэрэв модуль болгон хөрвүүлсэн бол), PHP орчин, үйлдлийн системийн хувилбар, замууд, мастер болон локал тохиргооны сонголтын хувьсагчид, HTTP болон PHP Лицензийн толгойн мэдээлэл орно. Систем бүр өөр өөр тохируулагдсан байдаг тул phpinfo() нь ихэвчлэн тохиргооны тохиргоог шалгахад ашиглагддаг ба Phpinfo() нь бүх EGPCS өгөгдлийг (Орчин, GET,) агуулсан тул дибаг хийх чухал хэрэгсэл юм. POST, күүки, сервер). Дараахь зүйлсийн аль нэгийг дамжуулснаар гаралтыг мэргэшүүлж болно тогтмолбитийн утгыг нэмэлт ямар параметрт нэгтгэсэн.

Та мөн үйлдлийг ашиглан харгалзах тогтмол эсвэл бит утгуудыг нэгтгэж болно.
Хүснэгт 1. phpinfo() сонголтууд

Нэр (тогтмол) Утга Тайлбар INFO_GENERAL1 Тохиргооны мөр, php.ini байршил, бүтээх огноо, вэб сервер, систем гэх мэт.INFO_CREDITS2PHP кредит 4.Харна уу. мөн phpcredits() .INFO_CONFIGURATION4PHP удирдамжийн одоогийн Локал болон Мастер утгууд. Харна уу. мөн ini_get() .INFO_MODULES8 Ачаалагдсан модулиуд болон тэдгээрийн харгалзах тохиргоо.INFO_ENVIRONMENT16Орчны хувьсагчийн мэдээлэл, мөн $_ENV-д байдаг.INFO_VARIABLES32 EGPCS (Environment, GET, POSTLIABLES, POSTENSE.PH6e, Cooke.ph64)-аас урьдчилан тодорхойлсон бүх хувьсагчдыг харуулдаг. мөн лицензийн асуулт .INFO_ALL-1Дээрх бүх зүйл нь анхдагч утга юм.

Тайлбар: expose_php тохиргооны тохиргоог унтраасан үед харуулах мэдээллийн зарим хэсэг идэвхгүй болно. Үүнд PHP болон Zend лого, кредитүүд орно. Мөн Энэ функц нь олон агуулсан хүснэгтийг харуулдагхэрэгтэй мэдээлэл php тохиргоо, суулгасан модулиуд, тохиргооны тухайлокал сервер

Сүлжээний сервер бүр өөрийн гэсэн өвөрмөц тохиргоотой тул phpinfo функцийг системийг шалгахдаа ашигладаг. Хэрэв скрипт нэг сервер дээр сайн ажиллаж, нөгөө сервер дээр ажиллахаа больсон бол энэ функцийг ашиглан шинэ серверийн тохиргооны тохиргоог шалгах нь зүйтэй.

Энэ функцийг ашиглах хамгийн хялбар арга бол тусдаа файл үүсгэх явдал юм.

Энэ нь иймэрхүү хуудсыг харуулах болно:

Зураг 1. phpinfo() функц ажиллаж байна.

Мөн доор нь мэдээллийн дөрвөн дэлгэц бий.

phpinfo бол хэвлэх функц юм бүрэн мэдээлэлОдоогийн PHP тохиргооны талаар.

PHP функц phpinfo
Нэр (тогтмол)Утга Тодорхойлолт
МЭДЭЭЛЭЛ_ЕРӨНХИЙ 1 Тохируулгын ерөнхий мэдээлэл, php.ini байршил, вэб сервер, системийн тухай мэдээлэл гэх мэт.
МЭДЭЭЛЭЛ_ЗЭЭЛ 2 PHP хөгжүүлэгчдийн тухай мэдээлэл. Үүнийг мөн phpcredits() функцийг ашиглан авч болно.
МЭДЭЭЛЭЛ_ТОХИРУУЛАЛТ 4 Үндсэн болон орон нутгийн PHP удирдамжуудын одоогийн утгын талаархи мэдээлэл. Мөн ini_get() функцийг ашиглан тэдгээрийг авч болно.
МЭДЭЭЛЭЛ_МОДУЛУУД 8 Ачаалагдсан модулиуд ба тэдгээрийн тохиргоо. Мөн get_loaded_extensions()-г үзнэ үү.
МЭДЭЭЛЭЛ_ОРЧИН 16 Орчны хувьсагчдын талаарх мэдээлэл, мөн $_ENV дээр байдаг.
INFO_VARIABLES 32 EGPCS (Environment, GET, POST, Cookie, Server) -аас урьдчилан тодорхойлсон бүх хувьсагчдыг гаргана.
INFO_LICENSE 64 PHP лицензийн мэдээлэл.
МЭДЭЭЛЭЛ_БҮГД -1 Дээрх бүгдийг гаргана.

Та phpinfo функц нь EGPCS өгөгдлийг агуулж байгааг харж болно, тиймээс үүнийг дибаг хийхэд ашиглаж болно.

Утгууд нь битийн хэлбэртэй тул ашигласан тоонууд нь 2, 4, 8, 16, 32, 64 байна.

Аргументтай phpinfo() ашиглах жишээ:

Phpinfo() функцээс өгсөн мэдээллийг халдагчид таны сайтад хор хөнөөл учруулах зорилгоор ашиглаж болно. Тиймээс энэ функцтэй файлуудыг устгах ёстой.

2010 онд Оросын программистуудын алдартай эх сурвалж Хабрахабр маш сонирхолтой судалгааны үр дүнг танилцуулсан нийтлэлийг нийтлэв. Оросын сайтуудын 4.69% нь phpinfo функцтэй phpinfo.php файлыг агуулж байгаа нь тогтоогдсон. Тухайн үед RuNet нь 36,804 сайтаас бүрдэж, 1,725 ​​нь сул талтай байсан.

Хэрэв та сервер дээр PHP-ийн ямар хувилбар байгааг олж мэдэх шаардлагатай бол phpversion функцийг ашиглаж болно.

Ямар ч програм хангамж, таны вэб сервер дээр ажиллуулахыг хүсэж байгаа нь тодорхой шаардлагыг хангасан байх ёстой. Жишээлбэл, WordPress нь PHP 5.2.4 буюу түүнээс дээш хувилбарыг шаарддаг. Серверээс хамааран та PHP-ийн зарим тохиргоог өөрчилж болно, бусад нь эсрэгээрээ өөрчлөхийг хориглодог боловч тэдгээрийн талаарх мэдээллийг phpinfo файлаас олж болно. Энэ зааварт та phpinfo файлыг хэрхэн үүсгэх, PHP модулиудын үнэ цэнэ, статусыг олж мэдэх болно. Энэ нь таны хамгийн их_гүйцэтгэх_цаг, санах ойн_хязгаар, шуудангийн_хамгийн их_хэмжээ болон бусад зэрэг таны байршуулах акаунтын талаар мэдээлэл авахад хэрэг болно.

Энэхүү гарын авлагыг эхлүүлэхийн өмнө танд дараахь зүйлс хэрэгтэй болно.

  • Хостинг хянах самбар эсвэл FTP данс руугаа нэвтрэх

Сонголт 1 - Хостинг хянах самбараар дамжуулан PHP мэдээллийг шалгах

Hostinger дээр таны дансны PHP мэдээллийг эндээс олж болно Нарийвчилсан → PHP мэдээлэл. Та үүсгэх шаардлагагүй тул энэ нь маш тохиромжтой функц юм нэмэлт файлуудтаны хостинг дээр.

Үүний дараа та өөрийн PHP хувилбар, модулиуд болон утгуудын талаар шаардлагатай бүх мэдээллийг агуулсан хуудас руу орох болно. Тодорхой модуль эсвэл функцийг хайхын тулд товчлуурын товчлолыг дарж хайлтыг ашиглана уу CTRL+F.

Баяр хүргэе! Та Hostinger хяналтын самбараар дамжуулан өөрийн php мэдээлэлд хэрхэн нэвтрэх талаар сурсан.

Сонголт 2 - phpinfo.php файл үүсгэх замаар PHP мэдээллийг шалгах

Хэрэв таны байршуулах платформ дээр үзүүлсэн функцийг дэмждэггүй бол санаа зовох хэрэггүй Сонголт 1. Бүтээснээр ижил үр дүнд хүрч болно тусгай файлтаны хостинг дансны дотор. Мөн файл нь таны PHP-ийн талаарх бүх мэдээллийг харуулах бөгөөд хөтчөөр дамжуулан хандах боломжтой.

Алхам 2.1 - phpinfo файл үүсгэх

Phpinfo файл үүсгэх хэд хэдэн арга байдаг. Энэ зааварт бид ашиглах болно. Гэсэн хэдий ч, таны файлыг үүсгэснээр ижил үр дүнд хүрч болно орон нутгийн компьютер-ээр дамжуулан файлыг серверт байршуулах.

Хостинг хянах самбартаа нэвтэрч, нээнэ үү Файл менежер . товчийг дарна уу Шинэ файлшинэ файл үүсгэх.

Эхний талбарт шинэ файл үүсгэх замыг зааж өгнө. Дараа нь, талбайд Шинэ файлын нэроруулах phpinfo.php. Ихэнх тохиолдолд та замыг өөрчлөхгүй орхиж болно /нийтийн_html. Энэ тохиолдолд файлыг үүсгэнэ үндсэн директортаны сайт.

Алхам 2.2 - Файлыг засварлах

Энэ үе шатанд танд хоосон файл байна phpinfo.phpкаталогид нийтийн_html. Дараах кодыг файл руу хуулж, дүрс дээр дарна уу Хадгалахдэлгэцийн зүүн буланд.

Ингээд л та амжилттай бүтээв PHP файлЭнэ нь таны бүх PHP сонголтуудыг харуулах болно. Өмнө дурьдсанчлан ижил үр дүнд хүрч болно:

  1. Аль нэгийг нь ашигла текст засварлагчмөн файл үүсгэх phpinfo.phpтаны компьютер дээр.
  2. Дараах кодыг файлд нэмнэ үү.
  1. FTP ашиглан файлаа өөрийн лавлах руу байршуулна уу нийтийн_html.

Алхам 2.3 - Хөтөчөөр дамжуулан PHP мэдээллийг шалгах

Хэрэв бүх зүйл зөв хийгдсэн бол та домэйн нэрийнхээ төгсгөлд нэмж үүсгэсэн файл руу хандах боломжтой hpinfo.php. Жишээлбэл, http://yourdomain.ru/phpinfo.php

Энэ хуудсыг хөтчөөр нээх үед та ижил төстэй үр дүнг харах ёстой:

Энэ хуудсан дээр та өөрийн бүх PHP тохиргоог харах боломжтой болно.

Дүгнэлт

Энэхүү зааварчилгааг дуусгаснаар та phpinfo файл үүсгэж, мэдээллээ шалгах аргад суралцсан болно. PHP тохиргоо. Энэ мэдээлэлХэрэв та өөрийн байршуулах тохиргоог мэдэх эсвэл тодорхой PHP модулиудыг шаарддаг программ хангамжийг ажиллуулахыг хүсвэл хэрэг болно.

Хэрэв та файлуудыг вэб серверээр биш, харин түүнээс илгээх шаардлагатай бол PHP ашиглан(жишээ нь, татан авалтын статистикийг цуглуулахын тулд) муурны доор оруулна уу.

1. Readfile() ашиглах

Энэ аргын сайн тал нь хайрцагнаас гарч ажилладаг явдал юм. Та зүгээр л өөрийн файл илгээх функцийг бичих хэрэгтэй (албан ёсны баримтаас бага зэрэг өөрчлөгдсөн жишээ):

Функц file_force_download($file) ( if (file_exists($file)) ( // скриптэд хуваарилагдсан санах ойг хэтрүүлэхгүйн тулд PHP гаралтын буферийг дахин тохируулна уу // Хэрэв үүнийг хийгээгүй бол файл санах ойд бүрэн уншигдах болно! (ob_get_level()) ( ob_end_clean(); ) // хөтчийг файл хадгалах цонхны толгойг харуулахыг албадаарай("Content-Type: application/octet-stream" =); " . basename($file)); header("Content-Transfer-Encoding: binary"); header("Хугацаа: 0"); header("Cache-Control: must-revalidate"); header("Pragma: public" "); header("Content-Length: " . filesize($file)); // файлыг уншаад хэрэглэгч рүү readfile($file); exit; ) )
PHP файлыг уншаад шууд хэсэг хэсгээр нь хэрэглэгчдэд өгөх тул том хэмжээтэй файлуудыг ч гэсэн ийм аргаар илгээж болно. Баримт бичигт readfile() гэж тодорхой заасан байдаг. тэгэх ёсгүйсанах ойн асуудал үүсгэх.

Онцлог:

  • Файл нь 8кБ хэмжээтэй (2fast4rabbit-ийн ачаар) readfile() функцын дотоод буферт уншигдах болно.

2. Файлыг гараар уншиж, илгээнэ үү

Энэ арга нь хувийнхаас файл илгээхдээ ижил Drupal ашигладаг файлын систем(файлуудыг холбоосоор шууд үзэх боломжгүй):

Функц file_force_download($file) ( if (file_exists($file)) ( // скриптэд хуваарилагдсан санах ойг хэтрүүлэхгүйн тулд PHP гаралтын буферийг дахин тохируулна уу // Хэрэв үүнийг хийгээгүй бол файл санах ойд бүрэн уншигдах болно! (ob_get_level()) ( ob_end_clean(); ) // хөтчийг файл хадгалах цонхны толгойг харуулахыг албадаарай("Content-Type: application/octet-stream" =); " . basename($file)); header("Content-Transfer-Encoding: binary"); header("Хугацаа: 0"); header("Cache-Control: must-revalidate"); header("Pragma: public" "); header("Content-Length: " . filesize($file)); // файлыг уншаад хэрэглэгч рүү илгээнэ үү if ($fd = fopen($file, "rb")) ( while (!feof) ($ fd)) (хэвлэх fread($fd, 1024); ) fclose($fd);
Онцлог:

  • Скрипт нь файлыг бүхэлд нь уншиж, хэрэглэгчдэд өгөх хүртэл хүлээнэ.
  • Серверийн санах ойг хадгалах боломжийг танд олгоно

3. Вэб серверийн модулийг ашиглах

3а. Апачи
XSendFile модуль нь танд тусгай толгой ашиглан Apache руу файл илгээх боломжийг олгодог. Unix болон Windows-д зориулсан 2.0.*, 2.2.* болон 2.4.* хувилбарууд байдаг.

Хост тохиргоонд та удирдамжийг ашиглан толгой хэсгийг таслахыг идэвхжүүлэх хэрэгтэй:
XSendFile асаалттай
Та мөн файлуудыг боловсруулж болох сангуудын цагаан жагсаалтыг зааж өгч болно. Чухал: хэрэв танд сервер байгаа бол Windows дээр суурилсанзам нь хөтчийн том үсгийг агуулсан байх ёстой.

Хөгжүүлэгчийн вэбсайт дээрх боломжит сонголтуудын тайлбар: https://tn123.org/mod_xsendfile/

Файл илгээх жишээ:

Функц file_force_download($file) (хэрэв (файл_байвал($файл)) (толгой("X-SendFile: " . realpath($file)); толгой("Агуулгын төрөл: application/octet-stream"); ​​толгой (" Content-Disposition: attachment; filename=" . basename($file) ) )

3б. Nginx
Nginx нь тусгай толгойгоор дамжуулан хайрцагнаас файл илгээх боломжтой.

Зөв ажиллахын тулд та тохиргооны файлаар дамжуулан хавтсанд шууд хандахаас татгалзах хэрэгтэй.
байршил /хамгаалагдсан/ (дотоод; үндэс /зарим/зам; )
Файл илгээх жишээ (файл нь /some/path/protected директорт байх ёстой):

Функц file_force_download($file) ( хэрэв (файл_байвал($файл)) (толгой("X-Accel-Redirect: " . $file); толгой("Агуулгын төрөл: application/octet-stream"); ​​толгой( "Content -Disposition: хавсралт; basename = ($file) );
Дэлгэрэнгүй мэдээллийг албан ёсны баримт бичгийн хуудаснаас авна уу

Онцлог:

  • Бүх зааварчилгааг дуусгасны дараа скрипт шууд дуусна
  • Бие махбодийн хувьд файлыг PHP биш харин вэб серверийн модуль өөрөө илгээдэг
  • Санах ой болон серверийн нөөцийн хамгийн бага хэрэглээ
  • Хамгийн их гүйцэтгэл

Шинэчлэлт: Habrowser ilyaplot нь application/octet-stream биш, харин файлын жинхэнэ mime төрлийг илгээх нь дээр гэсэн сайн зөвлөгөө өгдөг. Жишээлбэл, энэ нь хөтөчийг орлуулах боломжийг олгоно шаардлагатай програмуудфайл хадгалах харилцах цонхонд оруулна.