-

Круглосуточная служба поддержки:


Звонок из skype - звони круглосуточно!



www.


все зоны

.рф .ru .su .com .info .net.ru
проверить
.pro .net .org .biz .name .com.ru

Справочная информация >> Часто задаваемые вопросы >> Технические вопросы (MySQL, FTP, SSH и т.п.) >> Режимы работы PHP


Режимы работы PHP

На хостинге Hostland интерпретатор PHP может работать в нескольких основных режимах. В этом обзоре мы рассмотрим следующие режимы работы:

PHP как модуль Apache (mod_php)
PHP как CGI приложение
PHP в режиме работы php-fpm

PHP как модуль Apache (mod_php)

Данный режим является основным режимом работы php на хостинге Hostland. При этом режиме в настройках веб-сервера Apache подключается специально скомпилированный модуль mod_php. В этом случае каждый процесс веб-сервера будет включать в себя этот модуль. Выбор этого режима подходит для широкого спектра сайтов с большой и малой посещаемостью.

Преимущества:

  • При каждом обращении к вебсерверу интерпретатор php уже загружен в память процесса обслуживающего соединение. Не нужно тратить лишние миллисекунды для того что бы исполнить код интерпретатора.
  • Быстрое исполнение скриптов.

Недостатки:

  • Конфигурирование php.ini выполняется исключительно системными администраторами хостинг провайдера, некоторые параметры можно объявить через файл .htaccess. Таким образом, если для сайта нужны гибкие настройки php.ini, то с этим могут возникнуть трудности.
  • Загрузка модуля mod_php происходит во все процессы apache даже при отсутствии запросов на php скрипты, обрабатываемый этим модулем. За счет этого создается, незначительная, но бесполезная нагрузка на сервер.


PHP как CGI приложение

В этом режиме запускается интерпретатор php-cgi для всех скриптов, для которых установлен CGI в качестве обработчика. Если большая часть сайта состоит из статического содержимого, то CGI будет хорошим выбором, т.к. будет обеспечено экономичное использование оперативной памяти за счет того, что нужный интерпретатор будет вызываться в случае необходимости. Но, и в то же время, такой метод незначительно замедляет исполнение, т.к. при каждом запросе понадобится загрузка интерпретатора в память. Запуск PHP в режиме CGI позволяет указывать свой php.ini, что в свою очередь дает бóльшую гибкость в настройках php.

На хостинге Hostland установлены следующие интерпретаторы php, доступные для использования в режиме CGI:

/usr/local/php/php-5.2/bin/php-cgi
/usr/local/php/php-5.3/bin/php-cgi
/usr/local/php/php-5.4/bin/php-cgi
/usr/local/php/php-5.5/bin/php-cgi
/usr/local/php/php-5.6/bin/php-cgi
/usr/local/php/php-7.0/bin/php-cgi
/usr/local/php/php-7.1/bin/php-cgi

Переключить php в режим CGI (и обратно в режим модуля mod_php) можно двумя способами:
  1. Вручную:
    Создать файл /domain-name.ru/htdocs/www/cgi-bin/php.cgi :
    #!/bin/bash
    /usr/local/php/php-5.3/bin/php-cgi -c /home/hostXXXXXX/путь/к/файлу/php.ini
    
    Закачать файл на сервер в 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 и поместить в него следующие директивы:
    Action php-cgi /php.cgi
    AddHandler php-cgi .php .php3 .php5
    
    Теперь файлы с расширением .php, .php3, .php5 будут обрабатываться PHP интерпретатором в CGI-режиме.

  2. Автоматически в панели управления:
    В панели управления хостингом, в разделе «Домены» для каждого домена доступна настройка php.ini. Режим работы php будет автоматически переведен в режим CGI при добавлении хотя бы одной опции php.ini в «Стандартном», «Ограниченном» или «Параноидальном» режиме.

Преимущества:

  • Конфигурацию PHP можно сделать индивидуальной и очень гибкой для каждого сайта с помощью настроек php.ini.
  • CGI использует оперативную память только если это действительно необходимо.

Недостатки:

  • При каждом запросе понадобится загрузка интерпретатора в память, что может вызвать незначительные задержки (в пределах нескольких миллисекунд)
  • Разработка PHP-авторизации с командой Header имеет ограничения по причине того, что скрипт будет получать не все необходимые серверные переменные.

Небольшая ремарка:

Из практики работы нашей технической поддержки: при переносе сайтов с других хостингов мы иногда сталкиваемся с ситуацией, в которой приложение отказывается работать в режиме модуля 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-хостинге мы с радостью поможем вам его настроить.


Хостинг провайдер «Hostland» 2003—2017. Лицензия на телематические услуги № 137694