Что я должен сделать, чтобы использовать mod_fcgid вместо mod_php в ubuntu и centos. каковы основные преимущества и различия между двумя
На моей платформе общего хостинга я использую FastCGI для запуска PHP, а не для его прямого вызова. Они запускают PHP через CGI по умолчанию, а не как модуль, поэтому для меня это был просто вопрос добавления следующего в мой .htaccess
файл:
AddHandler application/myphp .php
Action application/myphp /cgi-bin/myphp.fcgi
Затем мне нужно было создать myphp.fcgi
скрипт в моем каталоге cgi-bin, содержащий:
#!/bin/sh
# This ensures PHP doesn't try to run it's own
# process manager.
export PHP_FCGI_CHILDREN=0
# Replace this shell image with a PHP
# image.
exec /path/to/php -c /path/to/my/php.ini
У меня это работает безупречно, и моя хостинговая среда работает в кластере из почти дюжины серверов за аппаратным балансировщиком нагрузки.
mod_php:
mod_fcgid:
cgi = каждый запрос запускает процесс и возвращает результаты клиенту fcgi = application (например, Ruby / Django) или интерпретатору (PHP) продолжает работать, а веб-сервер пересылает запросы и получает от него ответы.
FastCGI почти всегда быстрее (для того, что его поддерживает), однако для некоторых очень древних вещей (например, nagios) нужны cgi. Единственное реальное преимущество cgi заключается в том, что там, где нет сценариев трафика, приложение cgi не использует память, но обычно веб-сервер достаточно умен, чтобы закрыть приложение FastCGI, которое не используется в течение некоторого времени, так что это не настоящее преимущество.