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

Используйте захваченный поддомен с подстановочными знаками, чтобы направлять запросы к определенному пулу PHP-FPM Apache

Сценарий состоит в том, что я системный администратор хоста с общим доступом SSH, поддерживаемым учетными записями пользователей LDAP. Каждый пользователь получает домашнюю папку в /home/users. В настоящее время мы используем Apache с mod_php чтобы пользователи могли размещать Wordpress (и все остальное).

В настоящее время под mod_php, все скрипты php запускаются под www-data. Мы хотим перейти на php-fpm с пулом масштабирования до нуля для каждого пользователя, чтобы файлы php каждого человека запускались под их uid.

Каждый пользователь получает свой субдомен, используя подстановочный знак ServerAlias ​​в конфигурациях Apache, который сопоставляется с /home/users/<user>/public_html

<VirtualHost *:80>
        UseCanonicalName Off

        # Wildcard capture for all {username}.domain.com subdomains
        ServerAlias *.domain.com
        ServerAlias www.*.domain.com

        VirtualDocumentRoot /home/users/%1/public_html


        <Directory ~ "/home/users/(.+)/public_html"> 
            ...
        </Directory>
</VirtualHost>

Я попытался установить FilesMatch с помощью SetHandler следующим образом:

<FilesMatch \.php$>
         SetHandler "proxy:unix:/var/run/php7-fpm-(.+).sock|fcgi://localhost"
</FilesMatch>

С помощью (.+) чтобы попробовать заменить имя пользователя на Directory а также пробовал %1 как с VirtualDocumentRoot, но оба не заменяются. FCGI: attempt to connect to Unix domain socket /var/run/php7-fpm-%1.sock (*) failed

Какие у меня есть варианты, которые не предполагают создание конфигурации apache для каждого человека при использовании php-fpm (если нет простого в настройке и универсального способа сделать это с помощью чего-то еще?)