AWS Cloud9 UbuntuでLaravelを動かしてMacからSSH接続するまで

# AWS Cloud9 UbuntuでLaravelを動かしてMacからSSH接続するまで

## Cloud9とは
Cloud9はAWSのクラウドでの開発環境

## AWSでCloud9の画面にログインする
AWSのアカウント作成の説明は、省略します。

![cn1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/7a50a756-b2cd-2521-bfea-851a3502e837.png)
![cn2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/d16756bd-7f24-22d9-0101-0169e6adbc13.png)
![cn3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/72cecde3-a3a9-90c5-9aac-ad679c279e8e.png)

Mac OSXでSafariを使っている場合
Safariを開いている状態で コマンドキー＋,でプリファレンスを開いてサイト超えてトラッキングのチェックボックスを外して、OSを再起動。これをしないとcloud9で画面のプレビューを見られない。
![cn4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/e9ba77c3-b649-2bbc-dede-97257b5740ba.png)

## Cloud9のターミナルでapt-getを実行

```
sudo apt-get install php7.2-cli  php7.2-common php7.2 php7.2-mbstring php7.2-xml php7.2-dom php7.2-gd php7.2-mysqlnd php7.2-pdo php7.2-zip php7.2-redis php7.2-curl
```

![cn5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/475ba7f2-14df-b938-7b4d-ff1508fdb886.png)

## composerをインストール
ターミナルで以下のコマンドを実行

```
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer
composer --version
```

## Laravel プロジェクトを作成
ターミナルで以下のコマンドを実行

```
composer create-project laravel/laravel oreore_project --prefer-dist

```

## Laravel プロジェクトを実行
ターミナルで以下のコマンドを実行

```
cd oreore_project
php artisan serve --port=8080

```

Preview Runngin Appliationのウィンドウを開く

![cn6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/4cfacad0-abbe-e98f-d27b-e80e0b7f3598.png)
![cn7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/0b21a3c4-ed9d-2efe-d3a2-30fec7550348.png)

## Cloud9のエディタでテキストを変更してみる

![cn8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/eba5c6df-c415-765c-6ebf-2c25d08d9952.png)

Cloud9のエディタでテキストファイルを変更して、変更内容が反映されることを確認。


# データベースに接続
## アカウントを確認
メニューから Window→New Terminalでターミナルを開く

![cln1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/465101b0-807d-cf7e-1b5d-f9406326f1a5.png)

ターミナルで以下のコマンドを実行

```bash
cd /etc/mysql
ls -1
sudo cat debian.cnf

```

client部に書いてある user と password を記録
タイプミスしないようにコピーしてテキストエディタ
などに記録すると良い。


![cn13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/1ce23f23-14a6-8d3d-793f-ed4aa8a21b97.png)


ターミナルから以下のコマンドを実行

```bash

mysql -u#メモしたuser# -p


```

このときパスワードを聞かれるので、メモしたパスワード入力。

MySQLに接続するので、データベースを作成。

```sql

create database laravel;

データベース作成に成功したらexitコマンドでMySQLを抜ける。

```

![cnt14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/0cc3e75f-b51a-abd1-4c42-3510a24533af.png)

## カレントディレクトリをlaravelプロジェクトにする。

```
cd /home/ubuntu/environment/oreore_project/

```
テキストエディタで.envを編集する。
.envはLaravelの環境設定ファイル。これにデータベース接続設定をする。

テキストエディタはvimかnanoが良いだろう。
初心者にはnanoがおすすめだ。
なお.envはCloud9のIDEのエディタだとデフォルトでファイル一覧に表示されていないので、編集できなさそう。

.envのDB_DATABASEとDB_USERNAMEとDB_PASSWORDにメモしたMySQL接続情報を記入する。

![cnt15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/a0d7902c-1d43-25b8-619b-3bbbc6d547b1.png)
![cnt16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/7b045c8b-915b-d134-bf63-22989463ab6d.png)

## php artisan migrationを実行

コマンドラインから
php artisan migrate
を実行してデータベースにLaravelが使うテーブルを作成する。

![cnt17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/a4f4b149-d5f1-2229-6fb8-b1d90a0a25da.png)

# 追記: MacのターミナルからSSHでCloud9に接続する。

## EC2のインバウンドルールを追加
AWSコンソールでEC2を表示
![ss2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/a3d2144f-10c3-401a-8d4c-c97d590386b1.png)

SSH接続するCloud9のEC2インスタンスを選択


![ss 10s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/e715ba6c-5cbb-c83b-9f8e-ac21b6a4b036.png)

セキュリティグループをクリック
![ss 13b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/249e2f2f-eabf-4eae-c358-ea124b43d374.png)

インバウンドルールを編集をクリック
![ss 14s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/9ddfe3dd-8105-38e1-8e64-2d9134864308.png)

ルールの追加をクリック
![ss 15s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/3529fe95-6d0d-c434-735c-16e98d22fcac.png)

SSHを選択して接続を許可するIPアドレスを入力。ルールを保存をクリック。
![ss 16s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/4316cd67-1cc6-6cf9-4c62-efdeb35493fb.png)

### 接続するSSH公開鍵を.ssh/

Cloud9のターミナルでviエディタで公開鍵を追加。

```bash
vi ~/.ssh/authorized_keys
```
公開鍵をペースト。公開鍵は予め作っておく必要がある。ここではSSHの秘密鍵・公開鍵の説明はしない。

### Macのターミナルからログイン出来ることを確認する

EC2のコンソールからパブリック IPv4 DNSをコピー
![ss 17s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/aa50dacb-9f88-21fe-d4fa-1676e281a75e.png)

MacのターミナルでSSHコマンドを実行

```bash
ssh ubuntu@コピーしたパブリック IPv4 DNS
```

![ss 18s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6384/9f6938c1-ab61-7414-537e-8a9bd0a8df23.png)

MacのターミナルからCloud9に接続できた。

以上。