Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | fastcgi [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Коротко что такое CGI, FastCGI, PHP-FPM и mod_php ====== | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Сравнение режимов работы интерпретатора PHP-скриптов.) | ||
+ | }} | ||
+ | {{ :: | ||
+ | |||
+ | Рекомендации по выбору режима работы PHP (все эти варианты режимов из коробки поддерживает, | ||
+ | |||
+ | * Если сайт не использует файл .htaccess, выбирайте PHP-FPM. | ||
+ | * Если сайт использует .htaccess и для него подходит основная версия PHP, используйте PHP как модуль Apache. | ||
+ | * Если сайт использует .htaccess, но нужна дополнительная версия PHP, выбирайте FastCGI. | ||
+ | * CGI — самый медленный режим, его рекомендуется выбирать только в случаях, | ||
+ | |||
+ | ===== CGI ===== | ||
+ | |||
+ | <alert type=" | ||
+ | |||
+ | |||
+ | CGI описывает, | ||
+ | |||
+ | Стандарт " | ||
+ | |||
+ | |||
+ | ==== PHP как CGI ==== | ||
+ | |||
+ | В этом режиме запускается интерпретатор php-cgi для всех скриптов, | ||
+ | |||
+ | Преимущества: | ||
+ | |||
+ | * Все скрипты выполняются с правами пользователя – владельца www-домена. | ||
+ | * Возможность индивидуальной настройки PHP для каждого пользователя. | ||
+ | * Меньший расход оперативной памяти по сравнению с модулем apache | ||
+ | * Ошибки в скриптах не приводят к падению веб-сервера в отличие от режима PHP как модуль apache | ||
+ | Недостатки: | ||
+ | |||
+ | * Проблемы с авторизацией средствами PHP (средствами команды Header) по причине того, что не передаются некоторые переменные сервера php-скрипту. | ||
+ | |||
+ | ===== FastCGI ===== | ||
+ | **FastCGI** - клиент-серверный протокол взаимодействия веб-сервера и приложения, | ||
+ | |||
+ | CGI- программы взаимодействуют с сервером через STDIN и STDOUT запущенного CGI- процесса, | ||
+ | |||
+ | Дальнейшее развитие технологии CGI, является более производительным и безопасным, | ||
+ | |||
+ | FastCGI программа работает следующим образом: | ||
+ | |||
+ | Написание FastCGI программ-демонов сложнее чем CGI, нужны дополнительные библиотеки, | ||
+ | |||
+ | Опять же, сама аббревиатура FastCGI это не язык программирования и не отдельная программа, | ||
+ | ===== PHP в режиме FastCGI ===== | ||
+ | |||
+ | Помимо CGI режима, | ||
+ | |||
+ | Для работы с [[Apache|Apache]] нужен модуль mod_fcgid или mod_fastcgi, | ||
+ | |||
+ | [[Nginx|Nginx]] умеет работать с FastCGI приложениями из коробки, | ||
+ | |||
+ | Следует помнить, | ||
+ | |||
+ | По своим свойствам FastCGI является золотой серединой между mod_php и CGI режимами. В нём исключены недостатки CGI и присутствуют его достоинства. При включенном FastCGI, в ОЗУ сервера располагается постоянно запущенный процесс-обработчик. Это избавляет от необходимости при каждом запросе запускать новый процесс, | ||
+ | |||
+ | FastCGI сочетает в себе преимущества всех приведенных выше режимов. В этом случае php-обработчик запускается на постоянной основе, | ||
+ | |||
+ | Преимущества: | ||
+ | |||
+ | * За счет кэширования некоторых промежуточных данных скрипт не интерпретируется каждый раз при выполнении и достигается более высокая скорость по сравнению с PHP как CGI. | ||
+ | Недостатки: | ||
+ | |||
+ | * Лишний процесс пользователя (php-cgi) находится в памяти после первого обращения к процессу. | ||
+ | ==== Решение частых проблем PHP (mod_fcgid) в режиме FastCGI ==== | ||
+ | Вопрос ответ на часто встречающие ошибки FastCGI. Документация по модулю [[https:// | ||
+ | |||
+ | * Ошибка 1: [fcgid: | ||
+ | |||
+ | Исправляет параметр FcgidMaxRequestLen. | ||
+ | |||
+ | * Ошибка 2: [proxy_fcgi: | ||
+ | |||
+ | Да ошибки разные но решаются все в одном месте, установкой параметров: | ||
+ | |||
+ | < | ||
+ | nano / | ||
+ | или | ||
+ | nano / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | FcgidIdleTimeout 1200 | ||
+ | FcgidProcessLifeTime 1200 | ||
+ | FcgidConnectTimeout 1200 | ||
+ | FcgidIOTimeout 1200 | ||
+ | FcgidMaxRequestLen 2000000 | ||
+ | </ | ||
+ | |||
+ | Ubuntu | ||
+ | < | ||
+ | systemctl restart apache2; systemctl restart php7.4-fpm.service | ||
+ | </ | ||
+ | Centos | ||
+ | < | ||
+ | systemctl restart httpd; systemctl restart php-fpm.service | ||
+ | </ | ||
+ | |||
+ | ===== PHP-FPM ===== | ||
+ | FPM (FastCGI Process Manager, менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями обычно используемыми для высоконагруженных сайтов. | ||
+ | |||
+ | Изначально PHP-FPM представлял из себя набор патчей от Андрея Нигматулина, | ||
+ | |||
+ | PHP-FPM используется в основном в связке с [[Nginx|Nginx]], | ||
+ | |||
+ | **Как работает PHP-FPM?** | ||
+ | |||
+ | Представим, | ||
+ | |||
+ | Допустим у нас запущено 5 воркеров. В таком случае во время одновременного запроса первые 5 клиентов будут обрабатываться сразу, а остальные 45 становятся в очередь и ждут, когда первые 5 закончат обработку. PHP-FPM позволяет задавать настройки в зависимости от ваших потребностей, | ||
+ | |||
+ | * [[fastpanel# | ||
+ | * [[zabbix_agent# | ||
+ | |||
+ | ===== PHP как модуль Apache mod_php ===== | ||
+ | |||
+ | Это модуль для Apache, позволяющий ему выполнять php скрипты. Является наверно самым популярным и простым способом подружить Apache и PHP. Модуль не использует ни CGI, ни FastCGI. Есть свои минусы — скрипты работают под пользователем веб-сервера, | ||
+ | |||
+ | ===== PHP LSAPI ===== | ||
+ | PHP LSAPI — это интерфейс API, разработанный для работы с веб-серверами LiteSpeed. Он также может использоваться с другими серверами, | ||
+ | ===== LiteSpeed PHP (LSPHP) ===== | ||
+ | LiteSpeed PHP (LSPHP) — реализован в виде модуля mod_lsapi на веб-сервере Apache и является наиболее производительным вариантом запуска PHP на серверах под управлением сPanel. | ||
+ | |||
+ | Преимущества: | ||
+ | |||
+ | * Увеличение скорости обработки PHP-скриптов, | ||
+ | * Отсутствие 500-ой ошибки при наличии php_flag и подобных директив в .htaccess. Актуально при переезде с хостинга, | ||
+ | * Уменьшится потребление ресурсов в вашем виртуальном контейнере. | ||
+ | * Улучшится эффективность работы Opcode Cache | ||
+ | |||
+ | Как запустить скрипт [[PHP|PHP]] из планировщика [[cron|cron]]? | ||
+ | |||
+ | Скрипт PHP можно запустить с помощью планировщика cron, прописав перед адресом скрипта: | ||
+ | <file bash> | ||
+ | / | ||
+ | </ | ||
+ | Скрипт PHP может находиться в любой директории, | ||
+ | |||
+ | ===== Заключение ===== | ||
+ | Если вы используете веб-сервер LiteSpeed или планируете перейти на него, режим PHP LSAPI может предложить лучшую производительность и простоту настройки. Если же вы используете Nginx или другой веб-сервер, |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга