Як створити файл Phpinfo і перевірити інформацію про PHP. Віддаємо файли ефективно за допомогою PHP Уважний info php

(PHP 3, PHP 4, PHP 5)

phpinfo – виводить багато інформації про PHP.

Опис

int phpinfo()

Виводить велику кількість інформації про поточний статус PHP. Сюди входить інформація про опції компіляції PHP та про розширення, версії PHP, інформація сервера та оточення (якщо скомпільовано як модуль), оточення PHP, версія ОС, шляхи, master та локальні змінні опцій конфігурації, шапки HTTP та PHP License. Оскільки кожна система налаштована по-своєму, phpinfo() зазвичай використовується для перевірки установок конфігурації та доступності певних змінних у даній системі. ). Висновок може бути спеціалізований шляхом передачі однієї чи більше наступних константнихбітових значень, сумованих у необов'язковому параметрі what . Можна також комбінувати відповідні константні або бітові значення операцією.

Таблиця 1. Опції phpinfo()
Ім'я (константа)ЗначенняОпис INFO_GENERAL1Рядок конфігурації, розміщення php.ini , дата побудови/build, Web-сервер, система і т.д.INFO_CREDITS2КредитиPHP 4.Див. також phpcredits() .INFO_CONFIGURATION4Поточні Local і Master значення php-директив.Див. також ini_get() .INFO_MODULES8Завантажені модулі та їх відповідні налаштування.INFO_ENVIRONMENT16Environment Variable інформація, доступна також в $_ENV .INFO_VARIABLES32Показує всі визначені змінні з EGPCS (Environment, GET, POST. . також license faq .INFO_ALL-1Все вище зазначене.Це значення за промовчанням.

Примітка: частини інформації, що відображається, відключаються, коли установка конфігурації expose_php має значення off . Сюди входять PHP та Zend-логоси та кредити. також

Будь-яке програмне забезпечення, яке ви хочете запустити на вашому веб-сервері має певні вимоги, яким він повинен відповідати. Наприклад, для WordPress потрібно PHP версії 5.2.4 та вище. Залежно від сервера ви можете змінювати деякі налаштування PHP, інші навпаки змінювати заборонено, проте про них можна отримати інформацію у файлі phpinfo. У цьому посібнику ви дізнаєтеся, як створити файл phpinfo і дізнатися про значення і статус PHP модулів. Це також може бути корисно для отримання інформації про ваш хостинг обліковий запис, такий як max_execution_time, memory_limit, post_max_size та інший.

Перед тим, як ви почнете це керівництво, вам знадобиться таке:

  • Доступ до контрольної панелі вашого хостингу або FTP облікового запису

Варіант 1 - Перевірка інформації про PHP через панель керування хостингу

В Hostinger, інформація про PHP вашого облікового запису може бути знайдена в розділі Додатково → Інформація про PHP. Це дуже зручна функція, так як вам не потрібно буде створювати додаткові файли на вашому хостингу.

Після цього, ви переміститеся на сторінку з усією необхідною інформацією про вашу версію PHP, модулі та значення. Для пошуку конкретного модуля або функції скористайтеся пошуком, натиснувши клавіші CTRL+F.

Вітаємо! Ви дізналися, як отримати доступ до інформації про ваш PHP через панель управління Hostinger.

Варіант 2 - Перевірка інформації про PHP за допомогою створення файлу phpinfo.php

Не хвилюйтеся, якщо ваша хостингова платформа не підтримує функцію, показану в Варіант 1. Того ж результату можна досягти, створивши спеціальний файл всередині вашого хостинг облікового запису. Файл також покаже всю інформацію про ваш PHP і буде доступний через браузер.

Крок 2.1 - Створення файлу phpinfo

Існує кілька шляхів для створення phpinfo. У цьому посібнику ми будемо використовувати для цього. Однак той же результат може бути досягнутий створенням файлу на вашому локальному комп'ютеріта подальшого завантаження файлу на сервер через .

Увійдіть у панель управління вашого хостингу та відкрийте Файловий менеджер . Натисніть кнопку Новий файлдля створення нового файлу.

У першому полі вкажіть шлях, де буде створено новий файл. Далі, у полі Нове ім'я файлувведіть phpinfo.php. У більшості випадків ви можете залишити шлях без змін /public_html. У цьому випадку файл буде створено у кореневому каталозі вашого сайту.

Крок 2.2 - Редагування файлу

На цьому етапі у вас вже є порожній файл phpinfo.phpв каталозі public_html. Скопіюйте наступний код у файл та натисніть іконку Зберегтиу лівому куті екрану.

Ось і все, ви успішно створили PHP файл, який відображатиме всі параметри вашого PHP. Як уже згадувалося раніше, той же результат може бути досягнутий за допомогою:

  1. Використовуйте будь-який текстовий редакторта створіть файл phpinfo.phpна вашому комп'ютері.
  2. Додайте наступний код у файл:
  1. Завантажте файл за допомогою FTP у ваш каталог public_html.

Крок 2.3 - Перевірка інформації про PHP через браузер

Якщо все було зроблено правильно, то тепер ви можете отримати доступ до створеного файлу, додавши до кінця вашого доменного імені /phpinfo.php. Наприклад, http://вашдомен.ru/phpinfo.php

Ви маєте побачити схожий результат при відкритті цієї сторінки через браузер:

На цій сторінці ви зможете побачити всі налаштування вашого PHP.

Висновок

Закінчивши цей посібник ви навчилися, як створити файл phpinfo і перевірити інформацію про ваші налаштуваннях PHP. Дана інформаціяє корисною, якщо ви хочете дізнатися про налаштування вашого хостингу або запустити програмне забезпечення, яке вимагає наявності певних PHP модулів.

Якщо Вам потрібно віддавати файли не безпосередньо веб-сервером, а з допомогою PHP(наприклад для збору статистики завантажень), прошу під кат.

1. Використовуємо readfile()

Метод хороший тим, що працює з коробки. Потрібно лише написати свою функцію відправки файлу (трохи змінений приклад із офіційної документації):

Function file_force_download($file) ( if (file_exists($file)) ( // скидаємо буфер висновку PHP, щоб уникнути переповнення пам'яті виділеної під скрипт // якщо цього не зробити файл читатиметься в пам'ять повністю! if (ob_get_level()) ( ob_end_clean(); ) // змушуємо браузер показати вікно збереження файлу header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); ​​header("Content-Disposition: attachment; filename=" header("Expires: 0"); header("Cache-Control: must-revalidate"); header("Pragma: public"); header("Content-Length: ". читаємо файл і відправляємо його користувачеві readfile($file); exit; ) )
У такий спосіб можна відправляти навіть великі файли, оскільки PHP читатиме файл і відразу віддаватиме його користувачу частинами. У документації чітко сказано, що readfile() не повиненстворювати проблеми із пам'яттю.

особливості:

  • Файл читається у внутрішній буфер функції readfile(), розмір якого становить 8кБ (спасибі 2fast4rabbit)

2. Читаємо та відправляємо файл вручну

Метод використовує той же Drupal при надсиланні файлів із приватної файлової системи(файли недоступні безпосередньо за посиланнями):

Function file_force_download($file) ( if (file_exists($file)) ( // скидаємо буфер виведення PHP, щоб уникнути переповнення пам'яті виділеної під скрипт // якщо цього не зробити файл буде читатися в пам'ять повністю! if (ob_get_level()) ( ob_end_clean(); ) // змушуємо браузер показати вікно збереження файлу header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); =" . basename($file)); header("Content-Transfer-Encoding: binary"); header("Expires: 0"); public"); header("Content-Length: " . filesize($file)); // читаємо файл і відправляємо його користувачу if ($fd = fopen($file, "rb")) ( while (!feof($ fd)) ( print fread($fd, 1024); ) fclose($fd); ) exit; ) )
особливості:

  • Скрипт чекає доки весь файл буде прочитаний і відданий користувачеві.
  • Дозволяє заощадити пам'ять сервера

3. Використовуємо модуль веб-сервера

3a. Apache
Модуль XSendFile дозволяє за допомогою спеціального заголовка передати надсилання файлу самому Apache. Існують версії Unix і Windows, під версії 2.0.*, 2.2.* і 2.4.*

У налаштуваннях хоста потрібно увімкнути перехоплення заголовка за допомогою директиви:
XSendFile On
Також можна вказати білий список директорій, файли яких можуть бути оброблені. Важливо: якщо у вас сервер на базі Windows шляхповинен включати букву диска у верхньому регістрі.

Опис можливих опцій на сайті розробника: https://tn123.org/mod_xsendfile/

Приклад надсилання файлу:

Function 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 вміє відправляти файли із коробки через спеціальний заголовок.

Для коректної роботи потрібно заборонити доступ до папки безпосередньо через файл конфігурації:
location /protected/ ( internal; root /some/path; )
Приклад відправлення файлу (файл повинен бути в директорії /some/path/protected):

Function 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; ) )
Більше інформації на сторінці офіційної документації

особливості:

  • Скрипт завершується одразу після виконання всіх інструкцій
  • Фізично файл відправляється модулем самого веб-сервера, а не PHP
  • Мінімальне споживання пам'яті та ресурсів сервера
  • Максимальна швидкодія

Update:Хабраюзер ilyaplot дає слушну пораду, що краще слати не application/octet-stream, а реальний mime type файлу. Наприклад, це дозволить браузеру підставити потрібні програмиу діалоговому вікні збереження файлу.




Top