今日やったこと
- Noraworld Blogをプロダクション環境に移行
- Nodeのバージョンマネージャーをnvmからndenvに変更
- mailgunの設定をしようとしたけど失敗
Noraworld BlogはGhostを使っているが なんと今の今まで開発環境モードでサイトを立ち上げていた もちろんそれははじめてブログをデプロイしたときからわかっていたことではあるけど 特に違いもわからなかったのでそのまま使っていた
(たしかそのときはプロダクションだとエラーが出てうまく起動できなかったので開発環境モードで起動していた気がする それも今振り返ってみると単なる設定ファイルのミスだったような気がしてきたけど 昔は参考サイトのコマンドをただコピペしてただけだったのでエラーの原因がわかっていなかったんだと思う)
でも、Ghostのリポジトリにあがっているissueで 特定のパスでリクエストを投げるとエラーが表示されるというものを偶然見つけて 実際にそれを自分のブログに対してやってみたらたしかにエラーが表示された
問題なのは開発環境モードで起動していたため スタックトレースの情報まで表示されてしまっていた その中にはGhostを立ち上げているディレクトリのパスとかが細かく表示されていて これをそのままにしておくのはさすがにまずいな…と思ったので 今回、プロダクションモードに切り替えることにした(やっと)
開発環境モードとプロダクションモードでは当然データベースが違うので 今まで書いてきた記事はずっと開発モードのデータベースに入っていたことになる なので単に起動時のオプションをプロダクションモードにするだけでは 今まで書いてきた記事がすべてなくなってしまう
でもこれの解決方法は意外に簡単で 単に開発モードのデータベースファイルをプロダクションモードのファイル名に変更すれば良いだけだった
というわけでめでたくプロダクションモードで起動できた
これだけならまだすぐに終わったんだけど 自分のサーバではブログだけじゃなくてポートフォリオもNode.jsで動かしている GhostはNode.jsの推奨バージョンがちょっと古いので ポートフォリオとブログとで違うバージョンのNode.jsを使い分けている
今までずっとディレクトリに入ってはバージョンを切り替えるコマンドを実行してたけど さすがにめんどくさいのでディレクトリに入ったらNode.jsのバージョンを自動的に切り替えられるようにしたかった
今まではnvmというバージョンマネージャーを使っていたが
これはディレクトリ(プロジェクト)ごとにNode.jsのバージョンを自動的に切り替えられるのかわからない
(わからないというかそもそも調べておらず、それよりも先に)
◯◯env系なら共通してlocal
コマンドが使用できることを知っていたので
nvmからndenvに切り替えることにした
RubyもPythonもPHPも全部◯◯envで共通していたので Node.jsだけnvm使っていると使い勝手があまりよろしくなかった
ということでNode.jsのバージョンもいちいちポートフォリオとブログで 切り替える作業をしなくて済むようになったので楽になった
ついでにGhostでデプロイしているブログのadminパスワードを忘れたとき用に メールを送るためにmailgunの設定をしようと思ったんだけど なぜかアカウントを登録しても機能が使用できず おかしいなと思っていたら、なんとアカウントが停止されていた
アカウントが停止されていますというメッセージとともに サポートにコンタクト取ってくださいというリンクがあったので飛んでみたら 404 Not Found で見れなかった
その時点でもけっこう謎なんだけど さらにググってみて、公式ヘルプが出てきたんだけど そのヘルプにはサポートチームに連絡してくださいと書いてあって リンク先に飛んでみたらなんとヘルプのトップページに飛ばされるだけだった
mailgun本当に対応が変じゃないか?
アカウントが停止されていた理由もはっきりしないし アカウントを作成してすぐに使おうと思ってたんだけど すでにアカウントが停止されていたしで mailgun本当に意味がわからない
ということで解決策も何もなさそうなので諦めた まあパスワードはGoogleスマートロックに保存されているので ログインできないこともないだろうし 万一そうなったとしてもデータベースに直接アクセスできるので なんとかなるでしょうきっと
mailgunは本当に意味不明だったけど ブログをプロダクション環境で起動できて Node.jsのバージョン管理も楽にできたので良かった
FEH召喚
星5が出たけどはじめて見たから強いのかよくわからん