LoginSignup
3
6

More than 1 year has passed since last update.

EC2上のnginxとPHP7.4を連携

Last updated at Posted at 2020-07-20

EC2にインストールされたnginx上で、PHP7.4を動かす方法のメモです。
Appacheと違って、少し設定が必要だったので、手順をまとめておこうと思います。
(Amazon Linux 2での設定方法です。)

  • php7.4のインストールは、こちらを参考にしてください。

nginxの設定

/etc/nginx/nginx.confにphpの設定を行います。

$sudo vi /etc/nginx/nginx.conf

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        location ~ \.php$ {
           fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME
           $document_root$fastcgi_script_name;
           include        fastcgi_params;
        }
    }

php-fpmの設定 #1

/etc/opt/remi/php74/php-fpm.d/www.confにnginxと連携するための設定を行います(5箇所、設定を行います)。

$sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf
user = nginx
group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx

php-fpmの設定 #2

/etc/nginx/conf.d/php-fpm.confに設定を行います。

$sudo vi /etc/nginx/conf.d/php-fpm.conf
upstream php-fpm {
        server unix:/var/run/php-fpm/php-fpm.sock;
}

sockファイル用の設定

php-fpmでは、上記の/var/run/php-fpm/php-fpm.sockファイルを起動時に作成します。
Amazon Linux 2では、再起動すると/var/runディレクトリがリセットされてしますので、起動時に/var/run/php-fpmを自動生成するスクリプトを設定します。

$sudo vi /etc/tmpfiles.d/php-fpm-run.conf
d /var/run/php-fpm 0755 root root

php-fpmの起動

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

$sudo systemctl start php74-php-fpm.service

php-fpmの確認

以下のコマンドで、php-fpmの状態を確認します。
active(running)となっていれば、正常に起動しています。

$sudo systemctl status php74-php-fpm.service
 php74-php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php74-php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Mo 2020-07-20 21:13:23 UTC; 36min ago
 Main PID: 24651 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 1, slow: 0, Traffic: 0req/sec"
   CGroup: /system.slice/php74-php-fpm.service
           ├─24651 php-fpm: master process (/etc/opt/remi/php74/php-fpm.conf)
           ├─24652 php-fpm: pool www
           ├─24653 php-fpm: pool www
           ├─24654 php-fpm: pool www
           ├─24655 php-fpm: pool www
           └─24656 php-fpm: pool www

phpinfo()で、phpが動いているかを確認

phpinfoを呼び出すファイルを作成し、nginxのホームディレクトリ(/usr/share/nginx/html)に配置します。

$sudo vi info.php
<?php phpinfo(); ?>

ブラウザからアクセスし、以下の画面が表示されれば、nginx上で、phpが正常に稼働しています。

以上で、nginxとPHP7.4の連携設定は完了です。




3
6
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
3
6