AWSのEC2に基本的なLAMP環境を作ってみる(2)

  • 54
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

AWSのEC2に基本的なLAMP環境を作ってみる(1)は、執筆中です。
AWSのEC2でWEBサーバ用インスタンスを立ち上げるといった内容になる予定です。

SSHで接続する

起動したEC2インスタンスにSSH接続してみました

ssh -i ~/.ssh/(任意の名前).pem ec2-user@(EC2インスタンスのPublicIP)

すると、下記のように聞かれたので、yesと返答

The authenticity of host 'XXX.XXX.XXX.XXX (EC2インスタンスのPublicIP)' can't be established.
RSA key fingerprint is e1:5f:ac:bd:6d:ed:88:e0:9a:f7:a5:8b:e7:32:6a:05.
Are you sure you want to continue connecting (yes/no)? 

SSH接続できた!


       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/
1 package(s) needed for security, out of 14 available
Run "sudo yum update" to apply all updates.

色々インストールするため、ルートになります

$ sudo -i

ec2-userからrootになりました!

apacheをインストール/起動する

WEBサーバとして振る舞うため、
yumを使ってapacheを入れました (今回はapacheのバージョン2.4)

# yum install -y httpd24

インストールが終わったら、apacheの自動起動設定をしました

# chkconfig httpd on

「言語は日本語を使いますよー」と設定しておきます
en_US.UTF-8 となっているところを下記のように書き換えて保存しました

# vim /etc/sysconfig/i18n 
LANG=ja_JP.UTF-8

「時刻(タイムゾーン)は東京にしますよー」と設定します
設定というよりはファイルを上書きする方法のようです

cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

で、apacheを起動しました

# service httpd start

Starting httpd: AH00557: httpd: apr_sockaddr_info_get() failed for ip-XXX-XXX-XXX-XXX
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
                                                           [  OK  ]

起動できてるかどうかステータスを見てみました

# service httpd status

httpd (pid  2371) is running...

running なのでOKですね!

http://XXX.XXX.XXX.XXX(GlobalIP) にブラウザからアクセスすると、apacheのページが表示されました!
これでちゃんとWEBサーバとして振る舞っていることを確認できました

PHPをインストールする

yumでPHPを入れました (今回はPHP5.5を入れてみました)

# yum install -y php55

入ったかどうか、phpコマンドでバージョン確認をすることで確かめました

# php -v

PHP 5.5.22 (cli) (built: Mar  5 2015 23:04:39) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

ちゃんと PHP5.5.22 が入ったようですね!

次に、PHPのタイムゾーンを日本にしておきました
php.ini を触ります

# vim /etc/php.ini

php.ini は長いファイルなので文字列検索します
/date.timezone と入力して検索します

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

;date.timezone = のところをコメントインして、
date.timezone = 'Asia/Tokyo' としました

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = 'Asia/Tokyo'

MySQLをインストールする

AWSにはRDSというデータベースサービスがあるようですが、
今回は同じEC2インスタンスにMySQLを入れてしまいます

こちらもyumを使いました

# yum install -y mysql-server

インストールが終わったら、mysqlの自動起動設定をしました

# chkconfig mysqld on

で、mysqlを起動しました (初期化処理が走るようです)

# service mysqld start

Initializing MySQL database:
(以下略...)
Please report any problems at http://bugs.mysql.com/

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

起動できてるかどうかステータスを見てみました

# service mysqld status

mysqld (pid  2726) is running...

OKのようです!

次に、MySQLのパスワードを整えておきました
MySQLにログインして、パスワードを変更するクエリを発行するという流れです

下記のようにMySQLのrootユーザでログインします

# mysql -uroot

クエリは下記のように発行しました
'pass'の部分は本来はちゃんとしたパスワードを入れます
(MySQLの場合は、最後のセミコロンを忘れないようにねっ)

mysql> set password for root@localhost=password('pass');

Query OK, 0 rows affected (0.00 sec)

MySQLからログアウトします
(exitはセミコロン不要)

mysql> exit

Bye

次に、mysql_secure_installation というセキュリティ設定をしました
以下を実行します

# /usr/bin/mysql_secure_installation

対話式で聞かれるので、以下のように返答しました

Enter current password for root (enter for none): (先ほどのMySQL:rootユーザのパスワード)

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y


All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

設定を変更したので、一旦MySQLを再起動しました

# service mysqld restart

phpMyAdminをインストールする

MySQLを操作するには、ブラウザベースのphpMyAdminが便利なので
インストールしました

yumから入れますが、epelレポジトリを介するようです

# yum --enablerepo=epel install -y phpMyAdmin

phpMyAdminの

# vim /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1 <==(ここを修正!)
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

Require ip 127.0.0.1という部分を#でコメントし、
その下にRequire all grantedを書き足しました
修正後は下記です

     <RequireAny>
       #Require ip 127.0.0.1
       Require all granted
       Require ip ::1
     </RequireAny>

# service httpd restart(apacheを再起動) してから
http://(グローバルIP)/phpMyAdminにブラウザでアクセスすると、
phpMyAdminのログイン画面が現れます

まず、Languageを日本語に変更しました

ログインユーザは、MySQLのrootユーザで、
パスワードは、先ほどMySQLで設定したパスワードを使います

ログインが正常にできれば、とりあえずOKですね!

Gitをインストールする

今回、Gitを使用したいと思ったので
Gitをインストールしました

これもまたyumで入れました

# yum install -y git

操作はこれだけでした
確認としてバージョンを見ます

# git --version

git version 2.1.0

バージョン確認できたのでOKですね!