【初心者向け】AWSにインスタンス立てて、PHP、FTP、DBする話 (2017年版)


 
 
 
 
 
インスタンスを作成

スクリーンショット 2017-04-30 20.10.37
 
 
 
 
 
ステップ 1: Amazon マシンイメージ(AMI)

OSを選択する画面です。

Amazon Linuxを選択します

スクリーンショット 2017-04-30 20.11.49
 
 
 
 
 
ステップ 2: インスタンスタイプの選択

スペックを選択します。PC買う時にメモリを考えるイメージ

「t2.micro」で大丈夫です

料金表はこちら

大体、「t2.micro」で、月に1500円くらいです。

「次の手順:インスタンスの設定」

スクリーンショット 2017-04-30 20.13.51
 
 
 
 
 
ステップ 3: インスタンスの詳細の設定

何も考えず

「次の手順:ストレージの追加」

スクリーンショット 2017-04-30 20.20.35
 
 
 
 
 
ステップ 4: ストレージの追加

PCのHDDと同じ感覚です

データ量を考えて設定しますが、大量の動画を保存しない限りデフォルトで

「次の手順:Add Tags」

スクリーンショット 2017-04-30 20.22.21
 
 
 
 
 
ステップ 5: Add Tags

何も考えず

「次の手順:ストレージの追加」

スクリーンショット 2017-04-30 20.25.09
 
 
 
 
 
ステップ 6: セキュリティグループの設定

ポートを追加します

最初のSSHはそのままです

「HTTP」を追加し、「カスタム」を「任意の場所」にして下さい

「HTTPS」を追加し、「カスタム」を「任意の場所」にして下さい

※「FTP」は「カスタム」でいけそうでしたが、SSHで基本的にいけます

「確認と作成」

スクリーンショット 2017-04-30 20.26.29
 
 
 
 
 
ステップ 7: インスタンス作成の確認

「作成」を押すとキーペアの作成に入ります

これを持って「SSH」のアクセスをしますので保管して下さい

キーペアは初めてインスタンスを作る時は、「適当なキーペア」を付けて下さい

「ダウンロード」し、「作成」を押します

スクリーンショット 2017-04-30 20.32.27
 
 
 
 
 
インスタンスの画面に戻ります

「Name」は適当に付けて下さい

スクリーンショット 2017-04-30 20.34.16
 
 
 
 
 
ターミナルから接続してみる

 
1.SSHログイン

$ ssh -i “~/xxxxxx.pem” [インスタンスの画面のIP(IPv4 パブリック IP)]

$ ssh -i “/Users/xxxxxx/xxxxxx.pem” ec2-user@xx.xxx.xxx.xxx
 
 
 
 
 
2.yumを入れる

$ sudo yum update

$ sudo yum upgrade

yum は、ソフトウエアを、Redhatが大丈夫だと判断したものを

まとめてダウンロードできるパッケージです

amazonが自前で用意している?から

$ sudo yum list | grep php

で見るとPHPの新しいバージョンが入っている
 
 
 
 
 
3.ApacheとPHPとMySQLをインストール

Apache、PHPを綺麗にしておく。(何も入っていなければOK)

$ sudo yum remove httpd*

$ sudo yum remove php*

$ sudo yum clean

 
 
 
 
 
インストール

$ sudo yum install httpd24

$ sudo yum install php56

$ sudo yum install mysql56

ちなみに・・・

$ sudo yum list | grep mysql

$ sudo yum install mysql

mysql.noarch       5.5-1.6.amzn1       amzn-main

$ sudo yum install mysql56

mysql56.x86_64       5.6.35-1.23.amzn1       amzn-main

を意味しています。
 
 
 
 
 
ライブラリのインストール

$ sudo yum install gd

$ sudo yum install php56-gd

$ sudo yum install php56-mbstring

$ sudo yum install php56-mysqlnd
必要なものを追加でお好みで
 
 
 
 
 
MySQLを使うためのインターフェイスを入れるコマンド

$ sudo yum install mysql56-server
 
 
 
 
 
インスタンスを再起動した時に、ApacheとMySQLを自動リブートする

$ sudo chkconfig httpd on

$ sudo chkconfig mysqld on
 
 
 
 
 
初期起動は自分でやれと

$ sudo service httpd start

$ sudo service mysqld start
 
 
 
 
 
時間を設定する

$ sudo vi /etc/php.ini

date.timezone = “Asia/Tokyo”
 
 
 
 
 
お名前でサブドメインを設定する方法

「ネームサーバーの設定」

→「DNS関連機能の設定」

→サブドメインを付けたい独自ドメイン

→「DNSレコード設定を利用する」

 
 

xxx.co.jp

のサブドメインをお名前で設定する

それを新しいインスタンスに向けたい

 

ホスト名:text Type:A VALUE:xxx.xxx.xx.x

スクリーンショット 2017-04-30 21.36.19
 
 
 
 
 
ディレクトリーを作成しようー

ec2ユーザーにwwwの権限を譲渡

$ sudo chown ec2-user www
 
 
 
 
 
PHPファイルを置く

$ mkdir test.xxx.co.jp

$ cd test.xxx.co.jp/

$ vi index.php

<?php echo phpinfo(); ?>

http://test.xxx.co.jp

 

Browserで見えた
 
 
 
 
 
バーチャルホストの設定

cd /etc/httpd

※Apacheのフォルダです

cd conf.d

「.d」はディレクトリの意味。つまり設定ファイル集合体のフォルダに移動

ここにバーチャルホストファイルを作ります

$ sudo vi virtualhost.conf


NameVirtualHost *:80

NameVirtualHost *:443

<VirtualHost *:80>

DocumentRoot /var/www/html

ServerName test.xxx.co.jp

</VirtualHost>

 

これで保存しリスタート

$ sudo service httpd restart
 
 
 
 
 
FTP

FileZilla を使ってます

ホスト:xxx.xxx.xx.x

プロトコル:SFTP

ログオンの種類:pem

ユーザー名:ec2-user
 
 
 
 
 
データベース

これでログイン完了

$ mysql -u root

パスワードがない状態なので、パスワードを変更しておこうー

mysql> update mysql.user set password=password(‘xxx’) where user = ‘root’;

mysql> flush privileges;

 

Sequel Pro

「SSH」

MySQL ホスト:127.0.0.1

ユーザ名:root

パスワードxxx

SSHホスト:xxx.xxx.xx.x

SSHユーザ:ec2-user

SSH鍵:pem