LoginSignup
1
0

More than 1 year has passed since last update.

PHPを任意ユーザー(webapp)で動かす

Last updated at Posted at 2022-12-14

任意ユーザー(ここではwebappというユーザー)を追加して、そのユーザーでphpを動かす方法について記載します。
環境は AmazonLinux2 で、nginx、php-fpm はインストール済とします。

1. webappユーザーの追加の前準備

デフォルトだと webappユーザーを追加する際、ホームディレクトの /home/webapp の権限が 700で作成されてしまいます。
これだと他のユーザーが/home/webappディレクトリに入れないので、権限を755とする為、login.defsUMASKの設定を変更します。

$ sudo vi /etc/login.defs
# 略
# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           022 <=====この行を077 から 022に変更する
# 略

2. webappユーザーの追加

以下のコマンドを入力して、webappユーザーを作成します。

$ sudo useradd webapp

以下のコマンドでユーザーが追加されているか確認します。

$ id webapp
uid=1001(webapp) gid=1001(webapp) groups=1001(webapp) <=====このように表示されればOK

念の為、ディレクトリの権限も確認します。

$ ls -l /home
略
drwxr-xr-x  7 webapp   webapp   173 12月 14 04:09 webapp <=====権限が755になっています

3. php-fpm の権限変更

/etc/php-fpm.dディレクトリのwww.confを編集します。

$ sudo vi /etc/php-fpm.d/www.conf
略
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = webapp <=====ここをwebappにします
; RPM: Keep a group allowed to write in log dir.
group = webapp <=====ここをwebappにします

; The address on which to accept FastCGI requests.
略

4. php-fpm の再起動と確認

以下コマンドでphp-fpmを再起動します。

$ sudo systemctl restart php-fpm

以下コマンドでphp-fpmのプールのユーザーやグループが変更されたかを確認します。

$ ps -o user,group,cmd -e | grep -v grep | grep php-fpm
root     root     php-fpm: master process (/etc/php-fpm.conf)
webapp   webapp   php-fpm: pool www   <=====webappになっている
webapp   webapp   php-fpm: pool www
webapp   webapp   php-fpm: pool www
webapp   webapp   php-fpm: pool www
webapp   webapp   php-fpm: pool www

5. nginx の再起動

忘れがちですが、nginxも再起動が必要です。

$ sudo systemctl restart nginx

以下コマンドでwebappユーザーになります。また-をつけることで、そのユーザーのディレクトリに自動で移動します。

$ sudo su - webapp

6. まとめ

これでwebappユーザーでログインし、/home/webappフォルダにPHPアプリケーションを置く(cloneとかでもってくる)ことにより、ファイル権限もwebappになり、動いているphpもwebappで動かすことができるようになりました。
phpは吐き出すログファイルなどの権限もwebappになるので、整合性がとれるようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0