1. fuwamaki

    Posted

    fuwamaki
Changes in title
+Herokuを使いこなす
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,231 @@
+
+![](https://i.imgur.com/xFSWIOQ.png)
+
+herokuとは、簡単に言うと **クラウド上のサーバの一種** です。
+
+Webサイトを立ち上げようと思うと、自身でサーバをたてて設定しないといけませんが、
+herokuを利用すると、簡単にサーバをたてられて、Webサイトを作れます。
+
+厳密には、PaaS(Platform as a Service: アプリケーションを実行するためのプラットフォームをインターネットを介して提供するサービス)の一種です。
+サーバやOS、データベースなどのプラットフォームを、インターネットを介して利用することができます。
+
+herokuの一番良いところは、ほぼ **無料** で使える点です。
+プライベートで利用する分には無料プランで十分済むので、
+自分はプライベートでよく使っています。
+
+この記事ではherokuを使いこなす術をいくつか紹介します。
+
+## 開発環境
+
+- OS: MacOS v10.13
+- Terminal: iTerms
+- Shell: zsh
+
+クラウド環境(herokuマイページ)と、
+ローカル環境(Terminal)の操作がメインとなります。
+
+## 始める前に
+
+Herokuに新規登録・ログインする必要があります。
+https://signup.heroku.com/
+
+クレジットカード情報の登録が必須みたいですが、
+プランを切り替えない限り無料で問題なく利用できます。
+
+アクセス数が多くなるものを作りたい場合は、有料プランの方が良いかもです。
+詳しくは[こちら](https://devcenter.heroku.com/articles/free-dyno-hours)。
+
+## ログイン
+
+ローカル環境で、herokuにログインします。
+
+```
+$ heroku login
+```
+
+メールアドレスとパスワードを聞かれるので、入力してログイン完了。
+
+## アプリケーションの作成
+
+ローカル環境でheroku上にアプリケーションを作成します。
+作成したアプリケーションは[ダッシュボード一覧](https://dashboard.heroku.com/apps)に載ります。
+
+```
+$ heroku create
+```
+
+上記コマンドでも作成可能ですが、アプリケーション名がランダムになります。
+アプリケーション名を指定したい場合は、名前を指定しましょう。
+
+```
+$ heroku create アプリケーション名
+```
+
+## デプロイ
+
+ローカルで作成したコードをheroku上にデプロイします。
+htmlファイルをデプロイすれば、
+`https://アプリケーション名.herokuapp.com/` 上でページが開けるようになります。
+
+```
+$ git push heroku master
+```
+
+### git管理しているコードをデプロイする場合
+
+上記のデプロイでも問題ないですが、
+herokuアプリケーションと、対象のgitリポジトリを紐付けてあげれば、
+git pushするだけで、自動的にデプロイするように設定できます。
+
+![](https://i.imgur.com/Yp3ZX22.png)
+
+herokuアプリのDeployタブで、上記のように
+gitリポジトリ紐付け・Automatic deploysを設定すれば実現できます。
+
+## herokuにアップしたアプリをブラウザで開く
+
+herokuサイト上の `Open App` ボダンでも開けますが、
+ローカルからだと下記コマンドで開けます。
+
+```
+$ heroku open
+$ heroku open -a アプリケーション名 #App指定する場合
+```
+
+## 環境変数の確認・追加
+
+いわゆるconfigです。herokuアプリのSettingタブの`Config Vars`
+からも確認できますが、ローカルに出力することもできます。
+
+```
+$ heroku config
+```
+
+追加も同様、herokuアプリのSettingタブの`Config Vars`からもできます。
+ローカルからのコマンドで行う場合は下記です。
+
+```
+$ heroku config:set NAME='xxxxxxxxxx'
+```
+
+## ツールを追加・確認
+
+herokuサーバだけではシステム構築の幅が広くはないです。
+DBなどのツールを利用したいときは、 `addon` することができます。
+例えばClearDBをaddonしたい場合は下記です。
+
+```
+$ heroku addons:create cleardb:ignite
+```
+
+追加したaddonは下記コマンドで一覧を確認できます。
+また、herokuアプリのOverviewタブでも確認できます。
+
+```
+$ heroku addons
+```
+
+## ログを確認
+
+デプロイ時のログをターミナル上に表示できます。
+
+```
+$ heroku logs
+```
+
+リアルタイムで見ることもできます。 `--tail` も `-t` も同じです。
+
+```
+$ heroku logs -t
+$ heroku logs --tail
+```
+
+## ステータスの確認
+
+今Sleepモードなのかどうかなど、サーバ状態などの確認をすることができます。
+
+```
+$ heroku ps
+```
+
+## ドメインの確認
+
+今どのドメインが振られているかの確認です。
+
+```
+$ heroku domains
+```
+
+## アプリケーション一覧を確認
+
+[ダッシュボード一覧](https://dashboard.heroku.com/apps)で確認できます。
+また、ローカルから下記コマンドで確認できます。(どちらでも可)
+
+```
+$ heroku apps
+$ heroku list
+```
+
+## herokuアプリケーションが2つ以上ある場合
+
+基本的に `$ heroku create` コマンドを実行したPC且つ階層であれば、
+対象のherokuアプリケーションが設定されています。
+
+ただ別PCなどから、既存のherokuアプリケーションを利用したい場合、
+対象のherokuアプリケーションが設定されていません。
+その際は、指定することができます。config確認の場合は下記。
+
+```
+$ heroku config --app アプリケーション名
+```
+
+ただ、どのコマンドにも `--app アプリケーション名` を付けないといけないので、
+面倒なやり方ではあります。
+
+## herokuにコマンドを実行
+
+heroku上のデータベースを設定したいときの場合など、
+herokuにコマンドを実行してあげる必要があります。
+
+```
+$ heroku run コマンド
+```
+
+でローカルから実行できます。
+またこれは、herokuアプリ上でも `Run Console` があり、そこに直接
+
+```
+$ コマンド
+```
+
+しても同様にコマンド実行ができます。
+
+## herokuAppの名前を変更
+
+HerokuAppのnameを変更することができます。
+Heroku管理画面でも変更はできますが、オススメしません。
+デプロイコマンドに `--app NewName` を毎回付けないといけなくなるので。
+
+herokuAppのディレクトリroot階層で変更します。
+
+```
+$ heroku rename NewName
+```
+
+herokuAppのディレクトリ外で変更する場合はコマンドは下記。
+
+```
+$ heroku rename NewName --app OldName
+```
+
+## ログアウト
+
+ローカル環境でログアウトしたい場合は下記コマンド。
+
+```
+$ heroku logout
+```
+
+## まとめ
+
+まだまだたくさんあると思うので、都度更新していきます。