LoginSignup
31
35

More than 5 years have passed since last update.

nginx で PHP を動かす

Last updated at Posted at 2019-04-12

背景

Nginx で PHP を動かすには、php-fpm をインストールする所までは覚えていても、その後の設定の書き方を毎回すっかり忘れているのでメモ。
モジュールのインストールは終わっている前提で、その後の設定部分だけを記述しています。

環境

  • Amazon Linux 2
  • PHP 7.2.16 (php -v)
  • nginx/1.12.2 (nginx -v)

設定

nginx 側の設定

/etc/nginx/nginx.conf を編集する必用がある。
スタンザが http → server (80と443)→ location の階層構造になっている。
server の 80 と 443 の両方に php 用の location スタンザを追加しておく(使うほうだけでも良いけど)

nginx.conf
        location ~ \.php$ {
            root           /usr/share/nginx/html; # ここは nginx の / ディレクトリにしておく。nginx の / から下の階層の全てでPHPが実効できるようになる。
            # root           /var/www;
            # fastcgi_pass   127.0.0.1:9000;  # これは php-fpm の設定に依存する。自分は使わない派。ネットの記事は使っているものが多い。
            fastcgi_pass    unix:/run/php-fpm/www.sock; # こちら派。パスの設定は、php-fpm 側の記述に unix: を付けたものになる。
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include        fastcgi_params;
        }

編集が完了したら再起動

sudo nginx -s reload

php-fpm 側の設定

/etc/php-fpm.d/www.conf を編集する必用がある

/etc/php-fpm.d/www.conf
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx # nginx にする
; RPM: Keep a group allowed to write in log dir.
group = nginx  # nginx にする

<省略>
; Note: This value is mandatory.
listen = /run/php-fpm/www.sock   # これを使って通信するので、この値をnginx.confで指定する。

<省略>
;                 mode is set to 0660
listen.owner = nginx  # nginx にする
listen.group = nginx  # nginx にする

編集が完了したら再起動

sudo service php-fpm restart

PHP動作確認用のいつものFile

動作確認用の phpinfo.php を作成して、nginx のルートに配置する。

この例では nginx ルートは以下なので以下のルートにテスト用 php を配置
/usr/share/nginx/html

phpinfo.php
<?php phpinfo(); ?>

nginx ルートの www.example.com/phpinfo.php にアクセスすると、おなじみの以下の画面が見えればセットアップは完了です。
image.png

31
35
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
31
35