EC2にミドルウェアを導入する(Apache 2.4, PHP 7.4, MySQL 8(mysql_clientのみ))
Amazon Linux2のEC2に以下の対象ミドルウェアとCodeDeploy Agentを導入する手順を記載する。
【導入するミドルウェア】
・Apache 2.4
・PHP 7.4
・MySQL 8(mysql_clientのみ)※DB自体はRDSを使用しMySQL8を設定する
【その他インストール】
・CodeDeploy Agent
それではコマンド表示結果とともに記載していきます。
作業手順
対象サーバ(EC2)に対して以下設定を施す
1.ミドルウェアインストール
1-1. Apache 2.4インストール
インストールバージョンの確認
$ sudo yum info httpd 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd 利用可能なパッケージ 名前 : httpd アーキテクチャー : x86_64 バージョン : 2.4.41 リリース : 1.amzn2.0.1 容量 : 1.3 M リポジトリー : amzn2-core/2/x86_64 要約 : Apache HTTP Server URL : https://httpd.apache.org/ ライセンス : ASL 2.0 説明 : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
インストールを実施
# yum -y install httpd (略) インストール: httpd.x86_64 0:2.4.41-1.amzn2.0.1 依存性関連をインストールしました: apr.x86_64 0:1.6.3-5.amzn2.0.2 apr-util.x86_64 0:1.6.1-5.amzn2.0.2 apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2 generic-logos-httpd.noarch 0:18.0.0-4.amzn2 httpd-filesystem.noarch 0:2.4.41-1.amzn2.0.1 httpd-tools.x86_64 0:2.4.41-1.amzn2.0.1 mailcap.noarch 0:2.1.41-2.amzn2 mod_http2.x86_64 0:1.15.3-2.amzn2 完了しました!
パッケージがインストールされていることを確認
# yum list installed | grep httpd generic-logos-httpd.noarch 18.0.0-4.amzn2 @amzn2-core httpd.x86_64 2.4.41-1.amzn2.0.1 @amzn2-core httpd-filesystem.noarch 2.4.41-1.amzn2.0.1 @amzn2-core httpd-tools.x86_64 2.4.41-1.amzn2.0.1 @amzn2-core
バージョン確認
# httpd -version Server version: Apache/2.4.41 () Server built: Oct 22 2019 22:59:04
自動起動の設定をONにする
# systemctl enable httpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. # systemctl is-enabled httpd Enabled
# systemctl start httpd.service
# systemctl status httpd.service
一時的にオフィスからのhttpアクセスを許可しブラウザにて対象サーバのGrobalIP(EIP)での接続確認
http://GrobalIPアドレス
1-2. PHP 7.4インストール
Extras Libraryで利用可能なトピック、php7.4のトピック情報の確認
$ amazon-linux-extras (略) 42 php7.4 available [ =stable ]
$ amazon-linux-extras info php7.4 NOTE: The livepatch extra is in public preview, not meant for production use php7.4 recommends php-cli # yum install php-cli php7.4 recommends php-pdo # yum install php-pdo php7.4 recommends php-fpm # yum install php-fpm php7.4 recommends php-json # yum install php-json php7.4 recommends php-mysqlnd # yum install php-mysqlnd
php7.4のトピックをインストール
$ sudo amazon-linux-extras install php7.4
php7.4がインストールされたかを確認
→ こんな風にenabledに変わっていればOK
$ amazon-linux-extras (略) 42 php7.4=latest enabled [ =stable ]
PHPのバージョン確認
$ php -v PHP 7.4.4 (cli) (built: Mar 27 2020 18:05:17) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
拡張モジュールの確認 → @マークがついているものがインストールされている拡張モジュール
$ sudo yum list php* | grep amzn2extra-php7.4 php-cli.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-common.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-fpm.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-json.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-mysqlnd.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-pdo.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php.x86_64 7.4.4-1.amzn2 amzn2extra-php7.4
必要なものをインストール
拡張モジュール一覧は以下
https://www.php.net/manual/en/extensions.alphabetical.php
$ sudo yum install -y php-bcmath php-xml php-gd php-intl php-opcache php-mbstring (略) インストール: php-bcmath.x86_64 0:7.4.4-1.amzn2 php-gd.x86_64 0:7.4.4-1.amzn2 php-intl.x86_64 0:7.4.4-1.amzn2 php-opcache.x86_64 0:7.4.4-1.amzn2 php-xml.x86_64 0:7.4.4-1.amzn2 php-mbstring.x86_64 0:7.4.4-1.amzn2 依存性関連をインストールしました: libxslt.x86_64 0:1.1.28-5.amzn2.0.2 oniguruma.x86_64 0:5.9.6-1.amzn2.0.3 完了しました!
インストール確認
→ @マークがついているものがインストールできた拡張モジュール
$ sudo yum list php* | grep amzn2extra-php7.4 php-bcmath.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-cli.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-common.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-fpm.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-gd.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-intl.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-json.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-mbstring.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-mysqlnd.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-opcache.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-pdo.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php-xml.x86_64 7.4.4-1.amzn2 @amzn2extra-php7.4 php.x86_64 7.4.4-1.amzn2 amzn2extra-php7.4
Larabelの必須モジュールがインストールされているか確認
→ 以下の通り初めからLaravelのインストールに必要な拡張モジュールは入っている模様
▼参考サイト www.ritolab.com
$ sudo php -m | grep -e openssl -e PDO -e mbstring -e tokenizer -e ^xml$ -e ctype -e json -e bcmath bcmath ctype json mbstring openssl PDO tokenizer xml
1-3. MySQL 8(mysql_client)インストール
mysql8.0リポジトリの追加
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd mysql80-community-release-el7-1.noarch.rpm | 25 kB 00:00:00 /var/tmp/yum-root-KF26hS/mysql80-community-release-el7-1.noarch.rpm を調べています: mysql80-community-release-el7-1.noarch /var/tmp/yum-root-KF26hS/mysql80-community-release-el7-1.noarch.rpm をインストール済みとして設定しています 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ mysql80-community-release.noarch 0:el7-1 を インストール --> 依存性解決を終了しました。 amzn2-core/2/x86_64 | 2.4 kB 00:00:00 amzn2extra-docker/2/x86_64 | 1.8 kB 00:00:00 依存性を解決しました ========================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ========================================================================================================================== インストール中: mysql80-community-release noarch el7-1 /mysql80-community-release-el7-1.noarch 31 k トランザクションの要約 ========================================================================================================================== インストール 1 パッケージ 合計容量: 31 k インストール容量: 31 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : mysql80-community-release-el7-1.noarch 1/1 検証中 : mysql80-community-release-el7-1.noarch 1/1 インストール: mysql80-community-release.noarch 0:el7-1 完了しました!
インストール
$ sudo yum install -y mysql (略) インストール: mysql-community-client.x86_64 0:8.0.20-1.el7 mysql-community-libs.x86_64 0:8.0.20-1.el7 mysql-community-libs-compat.x86_64 0:8.0.20-1.el7 依存性関連をインストールしました: mysql-community-common.x86_64 0:8.0.20-1.el7 ncurses-compat-libs.x86_64 0:6.0-8.20170212.amzn2.1.3 置換: mariadb-libs.x86_64 1:5.5.64-1.amzn2 完了しました!
インストール確認
$ yum list installed | grep mysql mysql-community-client.x86_64 8.0.20-1.el7 @mysql80-community mysql-community-common.x86_64 8.0.20-1.el7 @mysql80-community mysql-community-libs.x86_64 8.0.20-1.el7 @mysql80-community mysql-community-libs-compat.x86_64 8.0.20-1.el7 @mysql80-community mysql80-community-release.noarch el7-1 installed
RDSへの接続確認
$ mysql -h <RDSのエンドポイント> -P 3306 -u dbuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 345 Server version: 8.0.17 Source distribution Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> quit;
2. CodeDeploy Agentインストール
以下の通り実行しAgentをインストールする
$ sudo yum install ruby $ sudo yum install wget $ cd /home/ec2-user $ wget https://aws-codedeploy-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/install $ chmod +x ./install $ sudo ./install auto $ sudo service codedeploy-agent status The AWS CodeDeploy agent is running as PID XXXX