AWS

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

More than 3 years have passed since last update.


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ですね!