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


はじめに

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

Conohaのサーバー作成

アカウントを作る

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

アプリケーションを選ぶ

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

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

パスワードはメモしておく!

サーバーへのアクセスを確認

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

パスワード入れてログイン確認できればOK

うぶんつ初期設定

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

作業ユーザーでログインできるか確認

コンソールをもうひとつ開いて作業ユーザーでログイン

作業ユーザーでログインできたらrootからのログイン禁止設定を入れる

設定ファイルのバックアップ

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

設定ファイルを編集する

sudo vi /etc/ssh/sshd_config

PermitRootLogin yesになってるのでnoに変更する

sshd_config
PermitRootLogin no

サーバー再起動

rootユーザーで接続してもログインできなくなってる確認

2. パスワードでのログイン禁止(鍵認証にする)

サーバー側に鍵置き場をつくる。

作業ユーザーでログインした状態で、作業ユーザーフォルダ直下に鍵置き場をつくります。

ssh [email protected] -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 [email protected]:~/.ssh/authorized_keys

サーバー側で鍵のパーミッション変更

chmod 600 ~/.ssh/authorized_keys

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

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

sudo vi /etc/ssh/sshd_config
sshd_config
PasswordAuthentication no

そしてサーバー再起動

3.ポート番号の変更

ポート番号を変更する

sudo vi /etc/ssh/sshd_config
sshd_config
-   Port 22
+   Port 56789

そしてサーバー再起動

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

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

ssh [email protected] -p 56789

4.IPとポート覚えるの面倒なのでconfig作る

こちらの記事をそのまま参考にしました。
https://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1

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

touch ~/.ssh/config

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

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入れてくれるついでに入れててくれればいいのにね…
最新版を確認すること!バージョンのところの数字を置き換えてください
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
の4つが起動してるはず

ワークスペースに入る

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にアクセス

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

おわり

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