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を変えるベストプラクティスには至っていないので覚書程度に…エンジニアとして働く90年生まれ。Web系技術を追っかけたり、PCガジェットや自転車いじりが趣味。オーディオオタク。