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