ジョートーTechなメモ

サーバとかAWS(Amazon Web Services)関係の設定などをメモ書きしていきます

Amazon Linux にLAMP環境をインストール

EC2インスタンスにログインします。

f:id:xsato53:20140907212538j:plain

1.MySQLのインストール

MySQL Client のインストール

$ sudo yum install mysql
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00

(略)

Installed:
mysql.noarch 0:5.5-1.6.amzn1

Dependency Installed:
mysql55.x86_64 0:5.5.38-1.0.amzn1 mysql55-common.x86_64 0:5.5.38-1.0.amzn1 mysql55-libs.x86_64 0:5.5.38-1.0.amzn1

Complete! 

 MySQL Server のインストール

$ sudo yum install mysql-server
Loaded plugins: priorities, update-motd, upgrade-helper

(略)

Installed:
mysql-server.noarch 0:5.5-1.6.amzn1

Dependency Installed:
mysql55-server.x86_64 0:5.5.38-1.0.amzn1 perl-Compress-Raw-Bzip2.x86_64 0:2.061-1.10.amzn1
perl-Compress-Raw-Zlib.x86_64 0:2.061-1.10.amzn1 perl-DBD-MySQL.x86_64 0:4.023-2.16.amzn1
perl-DBI.x86_64 0:1.627-1.7.amzn1 perl-Data-Dumper.x86_64 0:2.145-1.4.amzn1
perl-IO-Compress.noarch 0:2.061-1.1.11.amzn1 perl-Net-Daemon.noarch 0:0.48-4.4.amzn1
perl-PlRPC.noarch 0:0.2020-12.5.amzn1

Complete! 

 MySQL起動

 $ sudo /etc/init.d/mysqld start

Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h ip-172-31-3-179 password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

[ OK ]
Starting mysqld: [ OK ]

 MySQLバージョン確認

$ mysql

mysql> select VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 5.5.38 | 2014-09-07 |
+-----------+--------------+
1 row in set (0.00 sec) 

 MySQLのrootパスワード設定や匿名ユーザ削除、テストデータベース削除等の初期設定

$ sudo mysql_secure_installation

設定したパスワードでログインできるか確認

mysql -u root -p 

 chkconfigで自動起動設定

$ sudo chkconfig mysqld on
$ chkconfig --list | grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

$ sudo chkconfig httpd on
$ chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

 2.PHPのインストール

$ sudo yum install php55

(略)

Installed:
php55.x86_64 0:5.5.14-1.75.amzn1

Dependency Installed:
apr.x86_64 0:1.5.0-2.11.amzn1 apr-util.x86_64 0:1.4.1-4.14.amzn1 httpd24.x86_64 0:2.4.10-1.59.amzn1
httpd24-tools.x86_64 0:2.4.10-1.59.amzn1 json-c.x86_64 0:0.11-4.5.amzn1 libzip.x86_64 0:0.10.1-1.3.amzn1
mailcap.noarch 0:2.1.31-2.7.amzn1 php-pear.noarch 1:1.9.4-20.15.amzn1 php55-cli.x86_64 0:5.5.14-1.75.amzn1
php55-common.x86_64 0:5.5.14-1.75.amzn1 php55-pecl-jsonc.x86_64 0:1.3.2-1.9.amzn1 php55-process.x86_64 0:5.5.14-1.75.amzn1
php55-xml.x86_64 0:5.5.14-1.75.amzn1

Complete!

$ php -v
PHP 5.5.14 (cli) (built: Jul 9 2014 21:40:15)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies 

 PHPモジュールのインストール

$ sudo yum install php55-mysqlnd
$ sudo yum install php55-mbstring
$ sudo yum install php55-gd php55-pdo
$ sudo yum install php55-xmlrpc 

ここで、PHP5.5から以下のようになったので、「php55-mysqlnd」をインストールした。

php-mysql」が廃止されて「php-mysqlnd」に置き換わった
php-mysqlnd」でmysql_connect()系関数を使用した際、MySQLの古いパスワードフォーマット(16バイト)を使うとDBに接続できない 

以下参考:http://ezic-feed.w.ezic.info/3182.html

php.ini の設定

upload_max_filesize = 1280M
post_max_size = 1536M
memory_limit = 2048M

3.その他設定

ライブラリ等のインストール

$ sudo yum install libzip libzip-devel zlib-devel libaio
$ sudo yum install pcre pcre-devel
$ sudo yum install mysql55-devel.x86_64

 システム時刻をJSTに設定

sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

4.AMI・スナップショットの取得

ここまで構築した環境のスナップショットを取ります。

AWS管理コンソールに入り、サービスのEC2を選択、左メニューの「Instances」をクリックします。
Snapshotを取りたいインスタンスを選択し、「Actions」から「Create Image」を選びます。(一応、インスタンスは停止しておいた方がいいかもです)

f:id:xsato53:20140908131747j:plain

Image Name と Discriptiion を記述して「Create Image」をクリックします。

f:id:xsato53:20140908132740j:plain

これで、左メニューの「IMAGS」-「AMIs」と「ELASTIC BLOCK STORE」-「Snapshot」にそれぞれ、AMIとSnapshot が作成されます。

スナップショットからのインスタンス復元はまた別途。

補足:

AMIとスナップショットの違いについては下記で解説されています。簡単に言うと以下のようです。

ナップショット = 「EBS ボリュームの中のデータ」を特定のタイミングで取得しS3に保存したもの
AMI = 「EBS ボリュームの中のデータ(スナップショット) とインスタンスを構成する管理情報」を含む起動テンプレート

AWS Solutions Architect ブログ: AWSトレーニングでよくいただくご質問シリーズ - 第一回 Amazon Machine Image (AMI) とスナップショットの違い

 

あと、このサイトの解説がInstance/Volume/Snapshot/AMIの関係が判りやすいです。AWSで下記の4つの概念の関係を明確に教えていただけないでしょ… - 人力検索はてな

また、上記の手順で行った「Create Image」でAMIとSnapshotが同時にできる理由についてはこのサイトの補足にある下記説明が判りやすいです。

> あとはEBS root Instanceをバックアップとるときに、Create Image(EBS AMI)する方法とSnapshotを取る方法と2通りあってこれもまた混乱します。(どう使い分ければいいのか等)

この部分は回答していませんでしたが、ついでに説明しておきますね。
簡単に言うと CreateImage=CreateSnapshot+CreateAmi なだけです。

先に述べたとおり AMI はHDDを構成を記述した設定セットです。
既存のInstanceと同じAMIを作りたい場合は、まずルートボリュームのSnapshotを取り、そのSnapshotをルートデバイスに紐付けたAMIを作るという手順になります。
CreateImage はその決まりきった手順を一発で行なってくれるだけのものです。

CreateImageのメリットは操作が簡単でお手軽なことです。
対してCreateSnapshotとCreateAmiを別に行うことのメリットは柔軟なバックアップや起動構成を自分で管理できるということです。 

 

今回のownCloudインストールを踏まえたLAMP環境構築には下記サイトを参考にさせて頂きました。

ownCloud Server 7 を既存の LAMP 環境にインストールする手順 | WEB ARCH LABO

ownCloud Server 7 を CentOS/RHEL 6 に yum インストールする手順 | WEB ARCH LABO

ownCloud の Server Edition をインストール | BGT

【完全版】 自前Dropboxの「ownCloud」インストール手順。 簡単構築してプライベートクラウドを楽しもう! | 田舎に住みたいエンジニアの日記