SPICY SPACE BLOG

愛犬家WEBエンジニアの日常。

Heroku初心者がつまづいたこと3つ

FuelPHP(PHP5.3〜)を使うのに、今借りているVPSのPHPが5.2なので使えない。
そこで無料で使えるみんな大好きHerokuを使ってみることにした。

で、しばらく使ってみてこりゃあ普通のレンタルサーバーとだいぶ使い勝手が違うな、と。
当たり前か...笑

そこで、Heroku初心者の僕がつまづいたところ、分かりにくかったところを、備忘録を兼ねてまとめてみた。

1.Herokuコマンドの対象アプリ

Herokuで複数アプリを作った場合、 --app [アプリ名] と捜査対象のアプリを指定してHerokuコマンドを使えるが、めんどくさい。
で、どうにかならんもんかと調べてみた結果、--appを指定しなかった場合、git remoteに登録されたエイリアスからアプリを判断しているということが分かった。
つまり、カレントディレクトリを各アプリのリポジトリまで持って行って操作すれば指定なしでも大丈夫!
また、違うPCで作ったアプリに対してHerokuコマンド使いたいときは、gitのremoteにherokuのリポジトリを登録しておけばおk。

2.消えるシンボリックリンク

heroku run bashでリモート操作できるが、viなどでファイルを直接編集できないようになっている。 lnでシンボリックリンクは貼れるが、消える!なぜ?

ファイルは直接アップしてもダメ!

Herokuはマルチテナントであるため、以下のタイミングでインスタンスが切り替わる。
このインスタンス切り替えがあるため、直接ファイルをアップしてもムダ。ファイルのアップはGitを通してのみ行える。
インスタンスが切り替わるタイミングは以下。
* Git Push時
* Heroku config変更時
* おおむね1日1度、自動的に再起動

シンボリックリンクもGitで管理できる

これはHerokuの話ではないが、恥ずかしながら知らなかった。
なんとなくシンボリックリンクはコマンド打って貼らないといけない気がしていて、超はまってしまったが、ただローカルで作ったシンボリックリンクをプッシュするだったorz

3.SSH鍵の管理について

Macの場合、heroku login時に~/.ssh/以下の.pub公開鍵が勝手にアップされる。

Githubなど違うサービス用のものも入っているので、必要に応じてheroku keys:add/removeで手動追加/削除しておく。
ちなみにMacで複数のSSH鍵を管理する方法も今回初めて知った。
~/.ssh/configにホスト別に使用するSSH鍵を指定すればよいらしい。

参考サイト

知っておきたい!Herokuを使う上では当たり前?の16の常識 | blog.mah-lab.com

特盛!Heroku

Heroku: Up and Running

Heroku: Up and Running

  • 作者: Neil Middleton,Richard Schneeman
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2013/12/03
  • メディア: ペーパーバック
  • クリック: 2回
  • この商品を含むブログを見る