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

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

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接続します。

ログイン完了

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

 

nginxをインストール

リポジトリ追加

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

nginxをインストール

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

nginxの起動設定

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

 

php-fpmをインストール

リポジトリ追加

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

php-fpmをインストール

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

php-fpmの起動設定

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

 

php-fpmとnginxの接続設定

www.confの編集

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

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

default.confの編集

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

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

 

php-fpmとnginxの接続確認

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

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

nginxとphp-fpmの再起動

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

 

UNIXドメインソケット設定

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

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

www.confの編集

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

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

default.confの編集

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

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

nginxとphp-fpmの再起動

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

AWSのEC2で行うCentOS 7の初期設定

AWSのEC2で行うCentOS 7の最低限の初期設定をまとめてみました。まだすべき設定が残っているとは思いますので、こちらを更新していければと思っています。

 

開発環境

  • Mac OS X(El Capitan) 10.11.6
  • CentOS 7 (x86_64) – with Updates HVM

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

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

参考

 

AWSのEC2にSSH接続

秘密鍵の配置設定

以下のコマンドを実行してEC2からダウンロードした秘密鍵を【.ssh】ディレクトリに配置し、管理しやすくします。

 秘密鍵の権限設定

SSHを機能させるためには秘密鍵が公開されていないことが必要ですので、以下のコマンドを実行てし権限の設定をします。

 SSH接続

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

ログイン完了

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

 

CentOS 7の初期設定

SELINUXの無効化

以下のコマンドを実行してSELINUXを無効化します。【Disabled】になったら無効化完了です。

パッケージの更新

以下のコマンドを実行してCentOS 7のパッケージを更新します。

パッケージの自動更新設定

以下のコマンドを実行してyum-cronをインストールし、パッケージの自動更新を設定します。

タイムゾーンの変更

以下のコマンドを実行してタイムゾーンを変更します。

ロケールとキーマップの変更

以下のコマンドを実行してロケールとキーマップを日本語対応に変更します。

不要なサービスの停止(例:postfix)

以下のコマンドを実行して不要なサービスの停止をします。

 

ユーザーアカウント追加

ユーザーアカウント追加

以下のコマンドを実行して新規ユーザーアカウントを追加します。今回は【newuser】として作成します。

sudo権限の変更

以下のコマンドを実行してsudoersファイルを安全に編集します。

作成したnewuserグループをsudoコマンドがパスワード無しで実行できるように追記します。

ユーザーアカウント切り替え

以下のコマンドを実行してnewuserへ切り替えます。

 

公開鍵認証設定

公開鍵認証用ファイルの作成

以下のコマンドを実行して公開鍵認証用のディレクトリとファイルを作成します。

キーペアのパブリックキーをコピー

以下のコマンドを実行してパブリックキーをコンピュータから取得します。

表示されたインスタンスのパブリックキー(※以下は例)の末尾の【キーペア名】を除いてコピーします。

 取得したキーペアのパブリックキーをペースト

以下のコマンドを実行して、コピーしたキーペアのパブリックキーを【authorized_keys】にペーストします。

追加したユーザーアカウントでAWSのEC2にSSH再接続

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

ログイン完了

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