前回からの続きです。
アイキャッチ画像は、まったく関係ないけどApacheのイメージで連想されるものをチョイス(爆)
web経由のphp実行を任意のユーザーで行えるよう、PHP-FPMを設定していきます。
PHP-FPMの設定
cd /etc/php/7.4/fpm/pool.d
このディレクトリ内の設定ファイルをユーザー毎(厳密にはソケット毎)に用意します。
www.conf ファイルがベースファイルになるので、これをコピー。
sudo cp www.conf monmon.conf
情報を変更
ファイルの冒頭、pool name を始め以下の情報を任意のユーザーなどに諸々変更。
[monmon]
user = monmon
group = monmon
listen = /run/php/php7.4-fpm-monmon.sock
PHP-FPMを再起動すると……
sudo systemctl restart php7.4-fpm
あら不思議。以下に、独自のソケットができているはず。
ls /var/run/php
php7.4-fpm-monmon.sock
あとはapacheの設定ファイルに
sudo vi /etc/apache2/sites-available/monmon.jp-le-ssl.conf
こんな感じで phpファイルとソケットを紐付けると。
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.4-fpm-monmon.sock|fcgi://localhost"
</FilesMatch>
phpの実行ユーザーやグループなどが任意のものに変わっているはず。
余談ですが、PerlなどのCGIを同様にユーザー指定する場合は、suexecを利用するかんじです。
suexecもついでにインストール
sudo apt install apache2-suexec-custom
有効化して、
sudo a2enmod suexec
Apacheを再起動。
sudo systemctl restart apache2
Apacheの設定ファイルに、
sudo vi /etc/apache2/sites-available/monmon.jp-le-ssl.conf
このように設定すれば、任意ユーザーでのCGI起動ができるように。
SuexecUserGroup monmon monmon
うーん、どんどんサーバサイドの記事ばかりが増えていく(笑)
そろそろプログラム面でのネタというか、メモというか、も上げていきたい。