Назад | Перейти на главную страницу

Список модулей PHP, которые являются потокобезопасными

Я хотел бы попробовать запустить Apache в многопоточном MPM с mod_php. Есть ли у кого-нибудь список модулей PHP, которые являются потокобезопасными, чтобы я мог сказать, будет ли это безопасным или нет?

FAQ по PHP прямо заявляет, что это плохая идея. Большинство библиотек, от которых это зависит, действительно не являются потокобезопасными.

Если вы хотите использовать Apache worker (я, конечно, лично), вы можете вместо этого исследовать запуск worker-mpm и PHP5 с FastCGI (mod_fcgid).

Часть "cgi" может вас отпугнуть, но будьте уверены, mod_fcgid дает отличную производительность, он использует пул процессов, где PHP получает собственное пространство памяти, полностью независимое от веб-сервера. Это имеет множество преимуществ, включая, помимо прочего, лучшую безопасность (вы можете запустить пул от имени другого пользователя), лучшую стабильность (в случае сбоя PHP это не приведет к отключению вашего веб-сервера) и значительно уменьшенную память для процессов apache. поскольку им вообще не нужно встраивать mod_php, они просто общаются с пулом. Это также обеспечивает некоторую беспрецедентную детализацию из-за этого.

Вот пример учебника для систем на основе Debian. Я использую его в продакшене для различных систем, это дает мне гораздо больше масштабируемости.