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

Эффективное разделение привилегий под Apache2 + PHP 5.3

Каков предпочтительный способ настройки разделяемой среды с разделением привилегий и безопасности и производительности Apache2? Я хотел бы запускать каждый виртуальный хост под другим пользователем / группой и обрабатывать запросы PHP как можно быстрее.

Я бы предпочел FastCGI + php-fpm для этого. С помощью php-fpm вы можете настроить каждый пул на прослушивание отдельного порта (или сокета) и определить пользователя / группу, а также дополнительные параметры пула (например, каталог chroot, php_openbasedir, серверы для запуска, переменные среды, ограничение памяти, и т.д). Настройте FastCGI в Apache и используйте FastCGIExternalServer, чтобы указать конкретный пул php-fpm, который вы хотите использовать. (Создайте один пул для каждого виртуального хоста с правильным пользователем / группой и другими ограничениями (open_basedir, chroot и т. Д.).

(Я считаю, что предыдущим вариантом был бы FastCGI с suexec, но php-fpm действительно предлагает значительное улучшение по сравнению с этим).

Ничего не стоит, что FastCGI на самом деле медленнее, чем mod_php для обслуживания одного запроса, однако обычно он достаточно быстр и может обрабатывать параллелизм быстрее, чем mod_php.