ConohaのUbuntuの設定からDockerにlaradocしてLaravelの文字を表示するまで(win)


#はじめに
なんだか低コストで色々勉強できそうなので、Conohaの一番安いやつ契約しました。
契約してから、ララベルの文字出すまでのメモです。
:beginner:※めちゃめちゃに初心者が作ったメモなので、流用にはご注意ください:beginner:

#Conohaのサーバー作成
###アカウントを作る
https://www.conoha.jp/
Conohaの公式サイトでアカウント作ります。この前誕生日だったんですけど、500円のクーポンもらった:relaxed:

###アプリケーションを選ぶ
サーバー追加＞容量選ぶ＞アプリケーション＞Docker＞パスワード設定
■容量について
630円のやつだと拡張できないらしいんで拡張するつもりだったら900円のやつが良いかも:relieved:

■アプリケーション
OS選んで自分でdocker入れるほうがきっといいと思うんですけど、違いがよくわからないので入れてくれてるやつ選びました。勝手にうぶんつが入ります。ほかのOSじゃなきゃって人はOS選んだら良いと思う。

:bangbang:パスワードはメモしておく！

###サーバーへのアクセスを確認
:bangbang:出来上がったサーバーのIPをメモしとく
Conohaのサイト上のコンソールめちゃくちゃ使いづらかったので、自分のマシンに入ってるコンソールを使う想定です。
IPアドレスが123.45.67.890のとき

```
ssh root@123.45.67.890 -p 22
```
パスワード入れてログイン確認できればOK:ok_hand::ok_hand::ok_hand:

#うぶんつ初期設定
1.rootユーザーのログイン禁止
2.パスワードでのログイン禁止（鍵認証にする）
3.ポート番号の変更
4.IP覚えるの面倒なのでconfig作る

##1. rootユーザーのログイン禁止

###最初に決めておくこと
・作業ユーザー名（例）：gekimu
・作業ユーザーパスワード（例）：syatikupass
・ポート番号（例）：56789
ポート番号は1024～65535のなかでえらんでます。
使用中のポート番号の調べ方。

```
netstat -an | grep tcp | grep LISTEN
```

###作業ユーザー作成
サーバーにrootログインした状態で

```
adduser gekimu
```
パスワードを設定したあとのfullnameとかは全部空のままエンターし続ける

###SUDOを使うことができるメンバーに入れる

```
gpasswd -a gekimu sudo
```

###作業ユーザーでログインできるか確認
コンソールをもうひとつ開いて作業ユーザーでログイン

```
ssh gekimu@123.45.67.890 -p 22
```
###作業ユーザーでログインできたらrootからのログイン禁止設定を入れる
設定ファイルのバックアップ

```
sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
```

設定ファイルを編集する

```
sudo vi /etc/ssh/sshd_config
```
PermitRootLogin yesになってるのでnoに変更する


```ruby:sshd_config
PermitRootLogin no
```
サーバー再起動
###rootユーザーで接続してもログインできなくなってる確認

```
ssh root@123.45.67.890 -p 22
```

##2. パスワードでのログイン禁止（鍵認証にする）
###サーバー側に鍵置き場をつくる。
作業ユーザーでログインした状態で、作業ユーザーフォルダ直下に鍵置き場をつくります。

```
ssh gekimu@123.45.67.890 -p 22
mkdir ~/.ssh
chmod 700 ~/.ssh
```

###ローカル環境に鍵をつくる。
あたらしくコンソールをひらいて、
以下のコマンドを打つとC:\Users\user\.ssh配下に鍵（id_rsaとid_rsa.pub）ができる。
なんかトラブるときはだいたいパーミッションのせい。あとディレクトリが無いとか。

```
ssh-keygen -t rsa
```

###作った鍵を鍵置き場に転送する

ローカル側から鍵を鍵置き場に転送します。

```
scp ~/.ssh/id_rsa.pub gekimu@123.45.67.890:~/.ssh/authorized_keys
```
サーバー側で鍵のパーミッション変更

```
chmod 600 ~/.ssh/authorized_keys
```

###パスワード入れなくてもログインできるか確認

```
ssh gekimu@123.45.67.890 -p 22
```

###パスワードログインの禁止設定を入れる

```
sudo vi /etc/ssh/sshd_config
```

```ruby:sshd_config
PasswordAuthentication no
```

そしてサーバー再起動

##3.ポート番号の変更

###ポート番号を変更する

```
sudo vi /etc/ssh/sshd_config
```

```ruby:sshd_config
-   Port 22
+   Port 56789
```
そしてサーバー再起動

###22番ポートからログインできない確認

```
ssh gekimu@123.45.67.890 -p 22
```

###新しいポート番号からログインできる確認

```
ssh gekimu@123.45.67.890 -p 56789
```

###4.IPとポート覚えるの面倒なのでconfig作る
こちらの記事をそのまま参考にしました。
https://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1

ローカル環境でさっきつくった鍵のところにconfigファイルを作ります

```
touch ~/.ssh/config
```

「ssh conoha」と打つだけでサーバーに接続したい

```ruby:config
#ConoHa
Host conoha
  HostName 123.45.67.890
  User gekimu
  Port 56789
```
ログインできるか確認

```
ssh conoha
```

#Dockerにlaradocを入れる


###Dockerコマンドをsudoなしで使えるようにする

```
sudo groupadd docker
※もうありますよって言われるかも
sudo gpasswd -a gekimu docker
sudo service docker restart
```
###docker-composeを入れる
docker入れてくれるついでに入れててくれればいいのにね…
:bangbang:最新版を確認すること！バージョンのところの数字を置き換えてください
https://github.com/docker/compose/releases

```
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
```
###docker-conposeを実行できるようにする

```
sudo chmod +x /usr/local/bin/docker-compose
```

ここ以降はこちらを参考にしています。
https://qiita.com/hosono/items/dd404f3f074722ef989d

###作業ユーザーのディレクトリ直下にプロジェクトディレクトリを作成
/home/gekimu/の下に任意のディレクトリを作ります

```
mkdir laradockpj
cd laradockpj
```

###ララベルをクローンする

```
git clone https://github.com/laradock/laradock.git
```
###環境ファイルを作る

```
cd laradock
cp env-example .env
```
※ここ以降で「ディレクトリ間違ってませんか？」みたいなエラー出るときはlaradock配下以外でコマンド打ってないか確認
###コンテナの起動
けっこう時間かかる

```
docker-compose up -d nginx
```
###コンテナが起動してるか確認
```
docker-compose ps
```
・docker-in-docker
・nginx
・php-fpm
・workspace
の４つが起動してるはず

###ワークスペースに入る

```
docker-compose exec workspace bash
```

###ララベルをインストール
ワークスペース内の/var/www直下で

```
composer create-project laravel/laravel testapp
```

###nginxに設定をいれます
まずdockerを止める

```
docker-compose stop
```
laradockディレクトリ配下に戻って設定ファイルをバックアップして編集

```
cp nginx/sites/default.conf nginx/sites/default.conf.bak
vi nginx/sites/default.conf 
```

さっき作ったアプリ名のディレクトリを追加する

```
- root /var/www/public;
+ root /var/www/testapp/public;
```

nginxがログファイルへアクセスできるようにする
※もしかしたら777じゃないと動かないかもしれない

```
docker-compose exec workspace bash
chmod 775 -R /testapp/storage/
chmod 775 -R /testapp/bootstrap/cache/
```

###123.45.67.890にアクセス

ららべるのいつもの画面！

#おわり

わたしがまた作り直す時用なので、初歩的な注釈がおおくてずるずる長くなってしまいました。
あと、後半のメモ不足で、もしかしたらどっか間違えてるかもしれないです。
指摘あったら教えてください！:open_hands: