Режим работы php какой выбрать
Перейти к содержимому

Режим работы php какой выбрать

  • автор:

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

Интерпретатор PHP может работать в нескольких режимах:

  • PHP как модуль Apache
  • CGI
  • SuPHP
  • FastCGI
  • LSPHP

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

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

  • Доступны настройки кэширования, за счет чего можно увеличить производительность.
  • Быстрое исполнение скриптов.
  • Конфигурирование можно выполнять только через основной файл php.ini и некоторые параметры можно объявить через файл htaccess.
  • По умолчанию скрипты запускаются с правами пользователя apache. Однако это можно изменить путем использования mod_ruid, который позволяет запускать скрипты от разных пользователей.
  • Подгрузка модуля происходит во все процессы apache даже при отсутствии запросов на тип скрипта, обрабатываемый этим модулем. За счет этого создается бесполезная нагрузка на сервер.
  • Скрипт, имеющий ошибки, может привести к сбою работы веб-сервера.
  • Нет простого способа узнать, каким пользователем было запущено стороннее приложение.
  • Некоторые модули имеют проблемы в совместимости с многопоточным запуском веб-сервера (MPM Worker).

PHP в режиме CGI

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

  • Обработчик CGI может быть запущен с правами любого пользователя системы (с помощью suexec).
  • Конфигурацию PHP можно сделать индивидуальной для каждого пользователя.
  • CGI использует оперативную память только если это действительно необходимо.
  • Благодаря тому, что PHP интерпретатор работает как независимый процесс, вероятность сбоя работы Apache из-за ошибок в скриптах практически нулевая.
  • Каждый клиент может выбрать индивидуальную версию PHP.
  • Не высокая производительность.
  • Разработка PHP-авторизации с командой Header имеет ограничения по причине того, что скрипт будет получать не все необходимые серверные переменные.

SuPHP

SuPHP является частным случаем CGI, в котором каждый php скрипт может выполняться с привилегиями разных пользователей.

  • Можно отследить, от имени какого пользователя запускался скрипт.
  • Пользователь не сможет запустить скрипты, если он не является их владельцем.
  • Для всех файлов, которые будут загружены на сервер через сайт, будет установлен владельцем тот пользователь, от имени которого эти файлы загружались.
  • Сравнительно с CGI более высокая нагрузка на CPU.
  • Недоступны функции кэширования, например, XCache, APC и др.

PHP в режиме FastCGI (mod_fastcgi)

По своим свойствам FastCGI является золотой серединой между mod_php и CGI режимами. В нём исключены недостатки CGI и присутствуют его достоинства. При включенном FastCGI, в ОЗУ сервера располагается постоянно запущенный процесс-обработчик. Это избавляет от необходимости при каждом запросе запускать новый процесс, как в случае использования CGI. По быстродействию FastCGI аналогичен mod_php.

FastCGI сочитает в себе преимущества всех приведенных выше режимов. В этом случае php-обработчик запускается на постоянной основе, и теперь на каждый запрос не нужно создавать новый процесс, что было свойственно режиму CGI. FastCGI особенно подходит для высоконагруженных сайтов, нагрузка на которые постоянна.

  • Можно улучшить производительность используя кэширование.
  • Скрипты запускаются от имени их владельца.
  • Риск зависания минимизирован за счет существования переменной, определяющей количество запросов, которые можно обслужить до плановой перезагрузки интерпретатора.
  • Постоянно запущенный процесс интерпретатора создает нагрузку на оперативную память, хотя её объем меньше, чем при использовании PHP как модуля Apache. Это достигается за счет отсутствия необходимости обращения к интерпретатору PHP при выдаче статического содержимого.

LSPHP

LiteSpeed PHP (LSPHP) — реализован в виде модуля mod_lsapi на веб-сервере Apache и является наиболее производительным вариантом запуска PHP на серверах под управлением сPanel.

Каким образом узнать текущий режим PHP?

— Способ 1. С помощью функции phpinfo()

— Способ 2. С помощью функции php_sapi_name()

$sapi = php_sapi_name(); echo $sapi;

Какие есть режимы работы PHP?

Веб-серверы обрабатывают php-скрипты в разных режимах. Если подобрать подходящий вариант взаимодействия между PHP и веб-сервером на вашем сайте, то это однозначно положительно повлияет на производительность работы в целом. В этой статье описаны популярные режимы PHP.

 php for site

Режимы работы PHP включают:

  • PHP как модуль Apache
  • CGI
  • SuPHP
  • FastCGI
  • LSPHP.

PHP как модуль Apache (mod_php) — специальный режим, в основе которого подключение модуля mod_php в настройках веб-сервера Apache. Это означает, что все происходящие процессы включают данный модуль в себя. Однако этот режим рекомендуют использовать для интернет-ресурсов с небольшой посещаемостью. Среди основных преимуществ выделяются специальные настройки кэширования, именно благодаря им увеличивается производительность. Также данный режим PHP способствует быстрому выполнению скриптов, что является существенным плюсом в работе.

SuPHP — режим php, в котором каждый php скрипт может выполняться с прерогативами разных пользователей. Среди плюсов данного режима можно выделить:

  • возможности отслеживания имени пользователя, который запустил скрипт.
  • скрипты может запускать только тот пользователь, который является их владельцем.
  • для загруженных файлов через сайт, владельцем устанавливается тот, кто загружал файлы.

LSPHP (LiteSpeed PHP) — режим, в основе которого модуль mod_lsapi на веб-сервере Apache. Однозначно, это производительный вариант запуска PHP на сервере с популярной панелью управления сPanel.

Основные преимущества этого режима:

  • быстрая обработка PHP-скриптов, что положительно влияет на скорость работы сайта.
  • исчезновение 500-ой ошибки, если присутствует php_flag и подобные директивы в файле .htaccess.
  • уменьшение потребление ресурсов на вашем сервере.
  • улучшения качества работы Opcode Cache.

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

Среди преимуществ выделим следующие: CGI запускается с правами любого пользователя системы (suexec). Для каждого пользователя возможна подборка индивидуальных параметров PHP. PHP интерпретатор работает как независимый процесс, поэтому шанс поломки работы Apache из-за ошибок в скриптах минимальная. В итоге каждый пользователь может выбрать индивидуальную версию PHP для дальнейшей работы.

PHP в режиме FastCGI (mod_fastcgi) — еще один режим php, который, по-сути. является чем-то средним между mod_php и CGI режимами.

Если FastCGI включен, то в ОЗУ серверной машины постоянно размещается запущенный процесс-обработчик. В таком случае нет необходимости при каждом запросе запускать новый процесс, в отличии от использования CGI. Если сравнивать быстроту работы FastCGI и mod_php, то она аналогична. Если говорить о преимуществах режима FastCGI, то это совокупность плюсов всех выше перечисленных режимов. Запуск Php-обработчика происходит на постоянной основе, поэтому для каждого запроса не нужно создавать новый процесс. Режим FastCGI — отличное решение для проектов с постоянной высокой нагрузкой.

Плюсы режима FastCGI:

  • улучшения производительности с помощью кэширования;
  • запуск скриптов от имени их владельца;.
  • минимальный риск зависания.

Как определить режим PHP?

Для этого на вашем хостинге создайте специальный php-файл с любым именем, к примеру, info.php, далее откройте его и отредактируйте, вставив в него строки:

После сохранения откройте данный файл через веб-браузер. В результате вы получите всю информацию об установленном PHP. В специальной строке Server API будет отображен режим PHP (как на скриншоте):

php

Требования сайта и доступные серверные ресурсы напрямую влияют на выбор режима PHP. На виртуальном хостинге от ГиперХост интерпретатор PHP может работать в этих основных режимах в зависимости от сервера, на котором размещена ваша услуга. Для получения более детальной информации по доступным режимам PHP на вашей услуге, обратитесь в нашу техническую поддержку по удобному каналу связи.

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

Каждый из указанных режимов имеет как преимущества, так и недостатки. Те и другие качества в представляем ниже.

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

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

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

  • Доступны настройки кэширования, за счет чего можно увеличить производительность.
  • Быстрое исполнение скриптов.

Недостатки:

  • Конфигурирование можно выполнять только через основной файл php.ini и некоторые параметры можно объявить через файл htaccess.
  • По умолчанию скрипты запускаются с правами пользователя apache. Однако это можно изменить путем использования mod_ruid, который позволяет запускать скрипты от разных пользователей.
  • Подгрузка модуля происходит во все процессы apache даже при отсутствии запросов на тип скрипта, обрабатываемый этим модулем. За счет этого создается бесполезная нагрузка на сервер.
  • Скрипт, имеющий ошибки, может привести к сбою работы веб-сервера.
  • Нет простого способа узнать, каким пользователем было запущено стороннее приложение.
  • Некоторые модули имеют проблемы в совместимости с многопоточным запуском веб-сервера (MPM Worker).

PHP в режиме CGI

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

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

  • Обработчик CGI может быть запущен с правами любого пользователя системы (с помощью suexec).
  • Конфигурацию PHP можно сделать индивидуальной для каждого пользователя.
  • CGI использует оперативную память только если это действительно необходимо.
  • Благодаря тому, что PHP интерпретатор работает как независимый процесс, вероятность сбоя работы Apache из-за ошибок в скриптах практически нулевая.
  • Каждый клиент может выбрать индивидуальную версию PHP.

Недостатки:

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

SuPHP

SuPHP является частным случаем CGI, в котором каждый php скрипт может выполняться с привилегиями разных пользователей.

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

  • Можно отследить, от имени какого пользователя запускался скрипт.
  • Пользователь не сможет запустить скрипты, если он не является их владельцем.
  • Для всех файлов, которые будут загружены на сервер через сайт, будет установлен владельцем тот пользователь, от имени которого эти файлы загружались.

Недостатки:

  • Сравнительно с CGI более высокая нагрузка на CPU.
  • Недоступны функции кэширования, например, XCache, APC и др.

PHP в режиме FastCGI (mod_fastcgi)

По своим свойствам FastCGI является золотой серединой между mod_php и CGI режимами. В нём исключены недостатки CGI и присутствуют его достоинства. При включенном FastCGI, в ОЗУ сервера располагается постоянно запущенный процесс-обработчик. Это избавляет от необходимости при каждом запросе запускать новый процесс, как в случае использования CGI. По быстродействию FastCGI аналогичен mod_php.

FastCGI сочитает в себе преимущества всех приведенных выше режимов. В этом случае php-обработчик запускается на постоянной основе, и теперь на каждый запрос не нужно создавать новый процесс, что было свойственно режиму CGI. FastCGI особенно подходит для высоконагруженных сайтов, нагрузка на которые постоянна.

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

  • Можно улучшить производительность используя кэширование.
  • Скрипты запускаются от имени их владельца.
  • Риск зависания минимизирован за счет существования переменной, определяющей количество запросов, которые можно обслужить до плановой перезагрузки интерпретатора.

Недостатки:

  • Постоянно запущенный процесс интерпретатора создает нагрузку на оперативную память, хотя её объем меньше, чем при использовании PHP как модуля Apache. Это достигается за счет отсутствия необходимости обращения к интерпретатору PHP при выдаче статического содержимого.

LSPHP

LiteSpeed PHP (LSPHP) — реализован в виде модуля mod_lsapi на веб-сервере Apache и является наиболее производительным вариантом запуска PHP на серверах под управлением сPanel.

  • Увеличение скорости обработки PHP-скриптов, что ускоряет работу всего сайта.
  • Отсутствие 500-ой ошибки при наличии php_flag и подобных директив в .htaccess. Актуально при переезде с хостинга, который по умолчанию работал с mod_php.
  • Уменьшится потребление ресурсов в вашем виртуальном контейнере.
  • Улучшится эффективность работы Opcode Cache

На данный момент недостатков не было обнаружено.

Более подробно о работе LSPHP можно прочитать в нашем блоге в статье «Ускорьте работу своего сайта, перейдя на LSPHP».

Для того чтобы перейти на LSPHP, можно воспользоваться инструкцией из нашей вики.

Каким образом узнать текущий режим PHP?

Способ 1. С помощью функции phpinfo()

  • Создаем на хостинге php-файл c произвольным именем (например, info.php), после чего открываем его для редактирования и копируем в него следующие строки:

Значение параметра Server API

  • Сохраняем внесенные изменения, после чего открываем файл в браузере.
  • Если все данные были указаны верно, то в браузере будет выведена страница с развернутой информацией об установленном PHP. В перечне выведенных параметров будет присутствовать параметр Server API, в значении которого и отображается текущий режим PHP.
  • На изображении ниже показано значение параметра Server API в случае использования режима FastCGI.

Способ 2. С помощью функции функции php_sapi_name()

  • По аналогии первого способа, создаем на хостинге файл, например, info.php, затем открываем для редактирования и затем копируем следующий код:

Пример вывода при использовании режима FastCGI

  • После сохранения изменений открываем этот файл в браузере. В итоге должна быть отображена страница в теле которой будет выведено название используемого режима PHP. На изображении ниже представлен пример вывода при использовании режима FastCGI.

Уже знаете, какое доменное имя хотите получить для вашего веб-сайта? У нас вы можете купить домен дешево. Нужен хостинг? HOSTiQ предлагает интересные планы виртуального хостинга, а также вы сможете заказать VPS-сервер или арендовать сервер в Европе или США.

Читайте также

  • Настройка php.ini
  • Настройка SSL на Apache

Режимы работы PHP: mod_php, FastCGI и PHP-FPM на VPS

Веб-серверы могут обрабатывать php-скрипты в разных режимах. Если выбрать подходящий вариант взаимодействия PHP и веб-сервера на сайте, например, PHP как CGI или Apache-модуль, это положительно отразится на его производительности.

Выбрать режим работы PHP можно на VPS с панелью управления ISPmanager и Plesk. На виртуальном хостинге Рег.ру по умолчанию используется режим FastCGI.

Подробнее о том, какие режимы PHP поддерживаются на хостинге Рег.ру, читайте в статье.

В этой статье мы рассмотрим основные режимы работы PHP.

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

Модуль для веб-сервера Apache, который позволяет ему обрабатывать все запросы PHP, не используя сторонние модули.

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

  • Высокая производительность;
  • Можно вводить переменные PHP в .htaccess.
  • отдельные пользователи на сервере с mod_php не могут вносить изменения, если у них нет прав доступа на все процессы, с которыми он работает. Иными словами, права веб-сервера должны выдаваться всем пользователям на сервере;
  • Низкий уровень безопасности, так как нельзя определить пользователя, который запустил конкретный процесс (все процессы выполняются анонимно под пользователем apache);
  • Ошибки в скриптах могут парализовать работу всего сервера;
  • Веб-серверы с mod_php медленно обрабатывают статические данные.

PHP в режиме CGI и FastCGI

PHP CGI — один из первых сценариев обработки php-скриптов сервером с помощью модуля mod_cgi. Сейчас он используется редко и считается устаревшим.

В этом режиме каждый php-запрос выполняется отдельным процессом. Из-за этого производительность сайта снижается, и на обработку скриптов требуется больше времени.

Развитием технологии CGI (Common Gateway Interface) стал интерфейс FastCGI.

При создании сценария FastCGI учли медленную скорость обработки скриптов в CGI, поэтому в этом режиме используется циклическая обработка нескольких запросов одним процессом. FastCGI — это экономия оперативной памяти за счет сокращения количества запущенных процессов.

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

  • Пользователь обладает правами на выполнение всех скриптов на своем www-домене;
  • Безопасность (каждый запрос выполняется под отдельным пользователем, запуск небезопасного php-скрипта не повлияет на файлы других пользователей, которые находятся на одном с ним сервере);
  • Каждый пользователь на сервере может выбрать персональную версию PHP;
  • Отсутствие сбоев сервера при наличии ошибок в скриптах;
  • Обработка правил конфигурационного файла .htaccess, который поддерживается популярными CMS (WordPress, Joomla, 1C-Битрикс и пр.).
  • Чуть меньшая производительность по сравнению с модулем Apache;
  • Медленная обработка статических данных без связки с веб-сервером Nginx.

PHP в режиме FPM

FPM (FastCGI Process Manager) — альтернативная реализация PHP FastCGI. PHP FPM — это единственный модуль, который подходит для чистого веб-сервера Nginx.

Как работает PHP FPM:

  • Быстрая обработка статических данных;
  • Отсутствует необходимость в веб-сервере Apache;
  • Меньшее потребление оперативной памяти.
  • Отсутствует поддержка конфигурационного файла .htaccess. Это требует самостоятельной настройки аналогичных правил на стороне веб-сервера Nginx.

О выборе режима PHP

Выбор режима PHP зависит от требований ваших сайтов и доступных ресурсов сервера. В большинстве случаев мы рекомендуем использовать клиентам режим FastCGI, так как он подходит для корректной работы большинства CMS и требует меньше действий со стороны пользователя.

VPS с установленной CentOS

Закажите сервер с чистой CentOS или панелью управления ISPmanager всего за пару минут.

Помогла ли вам статья?

Спасибо за оценку. Рады помочь ��

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *