Опис основних режимів роботи php
На хостингу Hostland інтерпретатор PHP може працювати в декількох основних режимах. У цьому огляді ми розглянемо такі режими роботи:
PHP як модуль Apache (mod_php)
PHP як CGI додаток
PHP в режимі роботи php-fpm
PHP як модуль Apache (mod_php)
Даний режим є основним режимом роботи php на хостингу Hostland. При цьому режимі в настройках веб-сервера Apache підключається спеціально скомпільований модуль mod_php. У цьому випадку кожен процес веб-сервера буде включати в себе цей модуль. Вибір цього режиму підходить для широкого спектру сайтів з великою і малою відвідуваністю.
переваги:
- При кожному зверненні до веб-сервера інтерпретатор php вже завантажений в пам'ять процесу обслуговуючого з'єднання. Не потрібно витрачати зайві мілісекунди для того що б виконати код інтерпретатора.
- Швидке виконання скриптів.
недоліки:
PHP як CGI додаток
В цьому режимі запускається інтерпретатор php-cgi для всіх скриптів, для яких встановлено CGI як обробника. Якщо велика частина сайту складається з статичного вмісту, то CGI буде хорошим вибором, тому що буде забезпечено економічне використання оперативної пам'яті за рахунок того, що потрібний інтерпретатор буде викликатися в разі потреби. Але, і в той же час, такий метод незначно уповільнює виконання, тому що при кожному запиті знадобиться завантаження інтерпретатора в пам'ять. Запуск PHP в режимі CGI дозволяє вказувати свій php.ini, що в свою чергу дає б # 243; більшу гнучкість в налаштуваннях php.
На хостингу Hostland встановлені наступні інтерпретатори php, доступні для використання в режимі CGI:
Переключити php в режим CGI (і назад в режим модуля mod_php) можна двома способами:- вручну:
Створити файл /domain-name.ru/htdocs/www/cgi-bin/php.cgi. Завантажити файл на сервер в ASCII-режимі в папку домену, на якому передбачається запускати PHP в режимі CGI. Наприклад, для домену domain-name.ru це буде папка /domain-name.ru/htdocs/www/cgi-bin/. Якщо закачати файл не в ASCII-режимі, скрипт працювати не буде, буде видаватися помилка 500 (Internal Server Error).
Встановити на файл php.cgi права 0755 (rwxr-xr-x).
Створити файл .htaccess в директорії домену /domain-name.ru/htdocs/www і помістити в нього такі директиви: Тепер файли з розширенням .php. php3. php5 будуть оброблятися PHP інтерпретатором в CGI-режимі.
В панелі управління хостингом. в розділі «Домени» для кожного домену доступна настройка php.ini. Режим роботи php буде автоматично переведено на CGI при додаванні хоча б однієї опції php.ini в «Стандартному», «Обмеженому» або «параноїдальний» режимі.
переваги:
- Конфігурацію PHP можна зробити індивідуальної і дуже гнучкою для кожного сайту за допомогою налаштувань php.ini.
- CGI використовує оперативну пам'ять тільки якщо це дійсно необхідно.
недоліки:
Невелика ремарка:
З практики роботи нашої технічної підтримки: при перенесенні сайтів з інших хостингів ми іноді стикаємося з ситуацією, в якій додаток відмовляється працювати в режимі модуля php (з кодом завершення «segmentation fault»), але при цьому стабільно працює в режимі php-cgi. З чим це пов'язано сказати важко, але це факт. Зазвичай це стосується т.зв. legacy коду. написаного на php5.2 або php4.4. Сайт при цьому працює, але клієнт, в силу обставин, не може оновити код до сучасних версій php.
PHP в режимі роботи php-fpm
FastCGI Process Manager, «Менеджер процесів FastCGI». Це альтернативна реалізація FastCGI режиму в PHP з неяк-кими додат-ні-тель-ними мож-ли-во-стя-ми, кото-які зазвичай викорис-зу-ються для дуже високо-ко-на-гру-дружин-них сайтів.
Слід пам'ятати, що при роботі PHP в режимі FastCGI в пам'яті «висить» сам php інтерпретатор, а не якийсь конкретний php-скрипт.
PHP-FPM використовується, в основному, в зв'язці з Nginx, без установки Apache.
Більш докладний опис даного режиму виходить за рамки огляду даної теми, але на нашому VDS-хостингу ми з радістю допоможемо вам його налаштувати.