php7.0-fpmでvhosts環境でもphpの実行ユーザーを複数持てるようにした

Suexecより最近はこっちの方が良いのかな…?

私の実家でMinecraftとかApacheとかTomcatが何代か稼働してるサンドボックスみたいなサーバーがあるのですが、色々複雑化する中でApache(php)の実行ユーザーを切り替えられるようにしたかったので調べてみた。
私のサーバーはUbuntu16.04LTSの吊るしのApacheですが事情は多分Nginxとでも一緒だと思います。

組み合わせ

  • php7.0-fpm
  • Apache Httpd(2.4系)

php7.0-fpmのインストール

# apt-get php7.0-fpm

confファイルの編集

  • たぶん/etc/php/7.0/fpm/pool.d以下にwww.confがあるはずなので
# cp www.conf sample.conf

とでも書いてconfigの以下の点を編集

  • 4行目を
[www]

から

[sample]

に書き換え

  • 23-24行目を
user = hogehoge #任意のsuしたいユーザー
group = hogehoge #任意のsuしたいグループ

に書き換え

  • 37行目を
listen = 127.0.0.1:9000

に書き換え

全て書き換えたら

# service php7.0-fpm restart

で設定を反映

Apache側の設定

  • mod_php7.0/mod_proxyを有効化
  • sites-enabledの任意のvhostsの設定に対して
        <Directory "var/www/hogehoge/public">
         AllowOverride all
          <FilesMatch \.php

gt;
SetHandler "proxy:fcgi://127.0.0.1:9000/"
</FilesMatch>
</Directory>

とか書いてあげればおっけーみたいです。
127.0.0.1ではなくUNIXソケットで待つと処理が速くなるとかその他もろもろのconfigを変えるベストプラクティスには至っていないので覚書程度に…