LoginSignup
3
6

More than 5 years have passed since last update.

AWSのEC2で行うCentOS 7(nginx・php7.2-fpm)環境構築

Last updated at Posted at 2018-01-17

CentOS 7の初期設定まで記事はこちらになります。

それでは前回までに作成したCentOS 7でnginx・php-fpmの環境構築をしていきます。

開発環境

  • Mac OS X(El Capitan) 10.11.6
  • CentOS 7 (x86_64) - with Updates HVM
    • nginx version: nginx/1.13.8
    • PHP 7.2.1 (cli)
    • php-fpm-7.2.1-1.el7.remi.x86_64

事前に用意しておく必要があるもの

  • 接続先EC2のパブリックDNS
  • 作業ユーザ(CentOS 7の場合デフォルトはcentos)
  • EC2からダウンロードした秘密鍵(デフォルトは****.pem)

参考

AWSのEC2にSSH接続

SSH接続

以下のコマンドを実行してAWSのEC2にSSH接続します。

$ ssh -i ~/.ssh/秘密鍵名.pem ユーザ名@パブリックDNS

ログイン完了

以下が表示がされたらログイン完了です。

[centos@ip-パブリックDNS ~]$

nginxをインストール

リポジトリ追加

以下のコマンドを実行して設定を追記したnginx.repoのファイルを作成します。

# nginxリポジトリ追加
$ sudo vi /etc/yum.repos.d/nginx.repo
/etc/yum.repos.d/nginx.repo
+ [nginx]
+ name=nginx repo
+ baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
+ gpgcheck=0
+ enabled=1

nginxをインストール

以下のコマンドを実行してnginxをインストールします。

# nginxをインストール
$ sudo yum install nginx -y

# インストール確認
$ nginx -v

nginxの起動設定

以下のコマンドを実行してnginxを起動します。

# 起動
$ sudo systemctl start nginx

# 自動起動設定確認
$ systemctl list-unit-files --type=service | grep nginx

# 自動起動有効化設定
$ sudo systemctl enable nginx

# ステータス確認
$ sudo systemctl status nginx

# ブラウザ確認
$ パブリックDNS

php-fpmをインストール

リポジトリ追加

以下のコマンドを実行して設定を追記したEPELとRemiのリポジトリを追加します。

# EPELリポジトリ追加
$ sudo yum install epel-release -y

# Remiリポジトリ追加
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

php-fpmをインストール

以下のコマンドを実行してリポジトリを有効化しphp-fpmをインストールします。

# phpをインストール
$ sudo yum install --enablerepo=remi,remi-php72 php php-fpm -y

# インストール確認
$ php -v

# パッケージバージョン確認
$ rpm -qa | grep php

php-common-7.2.1-1.el7.remi.x86_64
php-cli-7.2.1-1.el7.remi.x86_64
php-7.2.1-1.el7.remi.x86_64
php-json-7.2.1-1.el7.remi.x86_64
php-fpm-7.2.1-1.el7.remi.x86_64

php-fpmの起動設定

以下のコマンドを実行してphp-fpmを起動します。

# 起動
$ sudo systemctl start php-fpm

# 自動起動有効化設定
$ sudo systemctl enable php-fpm

# 起動
$ sudo systemctl start php-fpm

# ステータス確認
$ sudo systemctl status php-fpm

php-fpmとnginxの接続設定

www.confの編集

以下のコマンドを実行して、www.confファイル内の【user】と【group】を【apache】から【nginx】に変更します。

# www.confファイルがあるディレクトリへ移動
$ cd /etc/php-fpm.d/

# オリジナルファイルのバックアップを作成
$ sudo cp www.conf www.conf.org

# www.confの編集
$ sudo vi www.conf
/etc/php-fpm.d/www.conf
# php-fpmでのnginx実行ユーザー指定 
 - user = apache
 + user = nginx
 - group = apache
 + group = nginx

default.confの編集

以下のコマンドを実行して、default.confファイル内の【server】ブロック内を変更します。

# default.confファイルがあるディレクトリへ移動
$ cd /etc/nginx/conf.d/

# オリジナルファイルのバックアップを作成
$ sudo cp default.conf default.conf.org

# default.confの編集
$ sudo vi default.conf
/etc/nginx/conf.d/default.conf
# ドキュメントルート・インデックスファイル指定
 #access_log  /var/log/nginx/host.access.log  main;

 + root /usr/share/nginx/html;
 + index index.html index.htm index.php;

# try_filesディレクティブ設定
 - location / {
 -     root   /usr/share/nginx/html;
 -     index  index.html index.htm;
 - }

 + location / {
 +     try_files $uri $uri/ /index.php$is_args$args;
 + }

# nginxでのphpスクリプト実行設定
 - #location ~ \.php$ {
 - #    root           html;
 - #    fastcgi_pass   127.0.0.1:9000;
 - #    fastcgi_index  index.php;
 - #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 - #    include        fastcgi_params;
 - #}

 + location ~ \.php$ {
 +      fastcgi_pass  127.0.0.1:9000;
 +      fastcgi_index index.php;
 +      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 +      include       fastcgi_params;
 + }

php-fpmとnginxの接続確認

ドキュメントルートにphpinfo.phpのテストファイルを追加

以下のコマンドを実行して、ドキュメントルートでphpが実行できるか確認します。

# スーパーユーザーに切り替え
$ sudo su

# テスト用phpファイルの作成
$ echo '<?php phpinfo();' > /usr/share/nginx/html/phpinfo.php

nginxとphp-fpmの再起動

以下のコマンドを実行して、nginxとphp-fpmを再起動し設定を反映させます。

# nginxの再起動
$ sudo systemctl restart nginx

# php-fpmの再起動
$ sudo systemctl restart php-fpm

# ブラウザ確認
パブリックDNS/phpinfo.php

UNIXドメインソケット設定

php-fpmのUNIXドメインソケット動作確認

以下のコマンドを実行して、php-fpmでUNIXドメインソケットを使用しているか確認できます。

# php-fpmのUNIXドメインソケット動作確認
$ netstat -al --protocol=unix |egrep "Proto|fpm"

Proto RefCnt Flags       Type       State         I-Node   Path

www.confの編集

以下のコマンドを実行して、www.confファイル内の【listen】と【listen.owner】と【listen.group】を変更します。

# www.confの編集
$ sudo vi /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf
# listenの内容を変更
- listen = 127.0.0.1:9000

- ;listen.owner = nobody
- ;listen.group = nobody

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

+ listen.owner = nginx
+ listen.group = nginx

default.confの編集

以下のコマンドを実行して、default.confファイル内の【fastcgi_pass】を変更します。

# default.confの編集
$ sudo vi /etc/nginx/conf.d/default.conf
/etc/nginx/conf.d/default.conf
# fastcgi_passの変更
- fastcgi_pass  127.0.0.1:9000;
+ fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;

nginxとphp-fpmの再起動

以下のコマンドを実行して、nginxとphpfpmを再起動し設定を反映させます。

# nginxの再起動
$ sudo systemctl restart nginx

# php-fpmの再起動
$ sudo systemctl restart php-fpm

# php-fpmのUNIXドメインソケット動作確認
$ netstat -al --protocol=unix |egrep "Proto|fpm"

Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     33580    /var/run/php-fpm/phpfpm.sock

ブラウザ確認

パブリックDNS/phpinfo.php

ブログ記事の転載になります。

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