Linuxなどのメモ書き

php-fpmでVirtualHostごとにuid/gidを変える


Rev.1を表示中。最新版はこちら

概要

Apache+CGIの環境ではsuExecで、実行するCGIプログラムのユーザIDを指定することができる。同様にphp-fpmにおいても、設定ファイルでuser/groupを指定すれば、ユーザID、グループIDを指定できる。これをVirtualHostごとにphp-fpmのユーザIDを指定できるようにする。

前提条件

WebサーバーにはApacheを使用。php-fpmが動作する設定は完了済みとする。

OSはFedora28を使用した。

修正方針

php-fpmにはPoolというものがあり、Pool単位で設定を変更することができる。デフォルトではwwwプールが一つだけ定義されており、Fedoraでは/etc/php-fpm.d/www.confに設定ファイルがある。修正の方針としては、VirtualHostごとにプールを作成し、各プールでユーザIDを指定するようにする。

手順

まずは、新しいプールを作成する(fooプール)。wwwプールをベースに作成すると楽なので/etc/php-fpm.d/www.confをコピーして作成する。

cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/foo.conf

foo.confの修正箇所は以下のとおり。

  • プール名を修正(ファイル先頭の[www]を[foo]に変更)
  • user/group設定を変更
  • listen用socketファイルの名前を変更
  • 必要に応じてログファイルの名前を変更

修正の差分例は以下のようになる。

# diff www.conf foo.conf 
4c4
< [www]
---
> [foo]
24c24
< user = apache
---
> user = tomita
26c26
< group = apache
---
> group = tomita
38c38
< listen = /run/php-fpm/www.sock
---
> listen = /run/php-fpm/foo.sock
319c319
< slowlog = /var/log/php-fpm/www-slow.log
---
> slowlog = /var/log/php-fpm/foo-slow.log
413c413
< php_admin_value[error_log] = /var/log/php-fpm/www-error.log
---
> php_admin_value[error_log] = /var/log/php-fpm/foo-error.log

 

 


最終更新 2018/08/30 00:08:15 - kztomita
(2018/08/30 00:08:15 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント