65
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
65
Help us understand the problem. What are the problem?