今回は、AWSを利用したクラウド環境をサーバ構築を紹介します。
前回でサーバの準備が整いましまたので、Apacheなどをインストールをします。
サーバ環境構築
前回に作成したサーバにSSHに接続し、
AWSのサーバ1台(Amazon Linux 2)に下記の環境を構築します。
・HTTP サーバー: Apache2.4
・プログラム言語:PHP 7.2
・PHP 拡張
・MySQL5.7
yumのupdate
yumを利用してシステムにインストールされているパッケージのバージョンのアップデートを行う。
$ sudo yum update
Apache24のインストール
$ yum list httpd Loaded plugins: langpacks, priorities, update-motd Available Packages httpd.x86_64 2.4.33-2.amzn2.0.2 amzn2-core $ sudo yum -y install httpd
httpdの起動など
httpdの起動と確認を行う。
# httpdを起動 $ sudo systemctl start httpd # 確認(active:runningになればOK) $ sudo systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d mqphp-fpm.conf Active: active (running) since Mon 2018-06-25 08:01:17 UTC; 13s ago Docs: man:httpd.service(8) Main PID: 12751 (httpd) Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec" CGroup: /system.slice/httpd.service tq12751 /usr/sbin/httpd -DFOREGROUND tq12757 /usr/sbin/httpd -DFOREGROUND tq12758 /usr/sbin/httpd -DFOREGROUND tq12759 /usr/sbin/httpd -DFOREGROUND mq12760 /usr/sbin/httpd -DFOREGROUND
httpdをシステム起動時に毎回起動する様に設定する
# システム起動時に毎回起動するように設定 $ sudo systemctl enable httpd
httpdがシステム起動時毎回起動する様になったか確認する
# 確認(enabledで有効) $ sudo systemctl is-enabled httpd enabled
PHP7.2のインストール
PHPのインストールチェック
標準のリポジトリでは5.4となる。
$ sudo yum list | grep php graphviz-php.x86_64 2.30.1-19.amzn2 amzn2-core php.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-bcmath.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-cli.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-common.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-dba.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-devel.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-embedded.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-enchant.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-fpm.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-gd.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-intl.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-ldap.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-mbstring.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-mysql.x86_64 5.4.16-43.amzn2 amzn2-core php-mysqlnd.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-odbc.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-pdo.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-pear.noarch 1:1.10.5-7.amzn2.0.1 amzn2-core php-pecl-memcache.x86_64 3.0.8-4.amzn2 amzn2-core php-pgsql.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-process.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-pspell.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-recode.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-snmp.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-soap.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-xml.x86_64 5.4.16-43.amzn2.0.4 amzn2-core php-xmlrpc.x86_64 5.4.16-43.amzn2.0.4 amzn2-core rrdtool-php.x86_64 1.4.8-9.amzn2 amzn2-core uuid-php.x86_64 1.6.2-26.amzn2 amzn2-core
Amazon-Linux-Extras
Amazon-Linux-Extrasという特別なリポジトリを使用するとこでより新しいバージョンをインストールすることができます。
$ amazon-linux-extras 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12 available [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 python3 available [ =3.6.2 ] 6 redis4.0 available [ =4.0.5 ] 7 R3.4 available [ =3.4.3 ] 8 rust1 available [ =1.22.1 =1.26.0 ] 9 vim available [ =8.0 ] 10 golang1.9 available [ =1.9.2 ] 11 ruby2.4 available [ =2.4.2 =2.4.4 ] 12 nano available [ =2.9.1 ] 13 php7.2 available [ =7.2.0 =7.2.4 =7.2.5 ] 14 lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ] 15 libreoffice available [ =5.0.6.2_15 ] 16 gimp available [ =2.8.22 ] 17 docker available [ =17.12.1 =18.03.1 ] 18 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 19 GraphicsMagick1.3 available [ =1.3.29 ] 20 tomcat8.5 available [ =8.5.31 ]
PHP7.2のインストール
# インストール $ sudo amazon-linux-extras install php7.2 Installed: mariadb.x86_64 3:10.2.10-2.amzn2.0.1 php-cli.x86_64 0:7.2.5-3.amzn2.0.2 php-fpm.x86_64 0:7.2.5-3.amzn2.0.2 php-json.x86_64 0:7.2.5-3.amzn2.0.2 php-mysqlnd.x86_64 0:7.2.5-3.amzn2.0.2 php-pdo.x86_64 0:7.2.5-3.amzn2.0.2 Dependency Installed: mariadb-common.x86_64 3:10.2.10-2.amzn2.0.1 mariadb-config.x86_64 3:10.2.10-2.amzn2.0.1 php-common.x86_64 0:7.2.5-3.amzn2.0.2 Dependency Updated: mariadb-libs.x86_64 3:10.2.10-2.amzn2.0.1 Complete! 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12 available [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 python3 available [ =3.6.2 ] 6 redis4.0 available [ =4.0.5 ] 7 R3.4 available [ =3.4.3 ] 8 rust1 available [ =1.22.1 =1.26.0 ] 9 vim available [ =8.0 ] 10 golang1.9 available [ =1.9.2 ] 11 ruby2.4 available [ =2.4.2 =2.4.4 ] 12 nano available [ =2.9.1 ] 13 php7.2=latest enabled \ [ =7.2.0 =7.2.4 =7.2.5 ] 14 lamp-mariadb10.2-php7.2=latest available \ [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ] 15 libreoffice available [ =5.0.6.2_15 ] 16 gimp available [ =2.8.22 ] 17 docker available \ [ =17.12.1 =18.03.1 ] 18 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 19 GraphicsMagick1.3 available [ =1.3.29 ] 20 tomcat8.5 available [ =8.5.31 ]
PHPのバージョンの確認
# PHPのバージョン確認 $ php --version PHP 7.2.5 (cli) (built: May 29 2018 19:08:12) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
上記13番の「php7.2=latest enabled 」となる。
PHP拡張のインストール
PHP拡張の確認
# 拡張機能を表示します。 $ sudo yum list php* | grep amzn2extra-php7.2 php-cli.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php-common.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php-fpm.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php-json.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php-mysqlnd.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php-pdo.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7. php.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-bcmath.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-dba.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-dbg.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-devel.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-embedded.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-enchant.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-gd.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-gmp.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-intl.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-ldap.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-mbstring.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-odbc.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-opcache.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-pecl-zip.x86_64 1.15.2-3.amzn2 amzn2extra-php7.2 php-pgsql.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-process.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-pspell.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-recode.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-snmp.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-soap.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-xml.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2 php-xmlrpc.x86_64 7.2.5-3.amzn2.0.2 amzn2extra-php7.2
PHP拡張のインストール
不足するものは追加します。
# 今回の拡張 $ sudo yum install php-cli php-common php-devel php-fpm php-gd php-mysqlnd php-mbstring php-pdo php-xml php-intl
MySQL5.7のインストール
Amazon Linux 2のデフォルトリポジトリであるamzn2-coreでは、yum install mysql を実行しても、malinaDBになってしまいます。
mysqlはCentOS7を利用します。Amazon Linux 2でのserviceコマンドがsystemctlコマンドにリダイレクトされるからです。
MySQL5.7のインストール
# MySQLをインポートする $ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm # MySQLをインストールする $ sudo yum install --enablerepo=mysql57-community mysql-community-server ・・・ ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: mysql57-community-release noarch el7-7 /mysql57-community-release-el7-7.noarch 7.8 k ・・・ # --enablerepo を指定しているので、インストールしたリポジトリが優先される。 #
MySQL5.7の起動とサーバー起動時の自動起動をONにする
// バージョン確認 兼 インストール確認 $ mysql --version mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper # サーバー起動時の自動起動をONにする $ sudo systemctl enable mysqld.service
MySQLの起動の確認とパスワードの変更
# 起動確認 $ systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-06-28 05:00:22 UTC; 3min 22s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 3779 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 3757 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 3783 (mysqld) CGroup: /system.slice/mysqld.service mq3783 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mys... Jun 28 05:00:21 ip-172-31-9-81.ap-northeast-1.compute.internal systemd[1]: St... Jun 28 05:00:22 ip-172-31-9-81.ap-northeast-1.compute.internal systemd[1]: St... Hint: Some lines were ellipsized, use -l to show in full.
MySQLの初期パスワードの変更を行う
# mysqlに入る # パスワードがログに出力されているらしいので、以下のコマンドで確認する。 $ sudo grep 'temporary password' /var/log/mysqld.log 2018-06-28T04:58:10.338094Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXXXXX # XXXXXXXXXXXXの部分にパスワードが表示される。 # このパスワードを使って入る。 $ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.22 Copyright (c) 2000, 2018, 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>-- 新しいパスワード設定 yyyyyyy が新しいパスワード mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'yyyyyyy';
AWSにおける環境構築の際の注意点
AWSにおいて環境構築の際はAWS独自の仕様を理解していないと、依存関係が壊れます。
注意してください。