AWSのEC2で行うAmazon Linux(nginx・php7.1-fpm)環境構築

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

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

 

開発環境

  • Mac OS X(El Capitan) 10.11.6
  • Amazon Linux AMI 2017.09.1 (HVM), SSD Volume Type – ami-33c25b55
    • nginx version: nginx/1.12.1
    • PHP 7.1.11 (cli)
      • php71-fpm-7.1.11-1.29.amzn1.x86_64

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

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

 

AWSのEC2にSSH接続

 SSH接続

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

ログイン完了

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

 

nginxをインストール

nginxをインストール

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

nginxの起動設定

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

 

php-fpmをインストール

php-fpmをインストール

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

php-fpmの起動設定

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

 

php-fpmとnginxの接続設定

www.confの編集

ファイルパス:/etc/php-fpm-7.1.d/www.conf

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

nginx.confの編集

ファイルパス:/etc/nginx/nginx.conf

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

 

php-fpmとnginxの接続確認

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

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

nginxとphp-fpmの再起動

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

 

nginx error!対応

php-fpm再起動時にACLのワーニングが出る場合

php-fpm再起動時にACLのワーニングが出る場合は、www.confファイル内の【listen.acl_users】をコメントアウトします。

ファイルパス:/etc/php-fpm-7.1.d/www.conf

ブラウザで再確認してみますが、また【nginx error!】が表示されましたのでnginxの【error.log】を確認してみます。

ファイルパス:/var/log/nginx/error.log

参考までにphp-fpmの【error.log】は/var/log/php-fpm/7.1/error.logで出力されています。

connect() to unix:/var/run/php-fpm/www.sock failedの修正

connect() to unix:/var/run/php-fpm/www.sock failed (2: No such file or directory) while connecting to upstream

上記エラーは【www.sock】ファイルがないため起こっているので、UNIXドメインソケット設定しphp-fpmを再起動して【.sock】ファイルを作成します。

その際、nginx.conf内の【include /etc/nginx/conf.d/*.conf;】という設定で/conf.d/php-fpm.confが読み込まれ【unix:/var/run/php-fpm/www.sock;】が使用されているのでUNIXドメインソケット設定はこちらに合わせて使用します。

 

UNIXドメインソケット設定

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

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

www.confの編集

ファイルパス:/etc/php-fpm-7.1.d/www.conf

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

nginx.confの編集

ファイルパス:/etc/nginx/nginx.conf

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

nginxとphp-fpmの再起動

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

ブラウザ再確認

以下のパスからブラウザ再確認します。無事表示されました。

パス:パブリックDNS/phpinfo.php