BMS, Movie, Illustrations, Programming

Heroku でサイトを立てた際の備忘録

Heroku でサイトを立てたので備忘録。
4時間くらい掛かったけれど、ステップ数が多かっただけで、ひとつひとつのステップはすんなり行った気がする。
後で見返すかどうかはわからないけど記録に残しておく。

これをベースに進めた

Heroku初心者がHello, Herokuをしてみる – Qiita
https://qiita.com/arashida/items/b2f2e01259238235e187

手元のLinuxの準備

CentOS8 と VMWare Workstation Player をダウンロードしてインストール。
「後で OS をインストール」を選択する必要があったみたい。
vmware-tools もインストール。

CentOS8をVMwareWorkstationにインストール – Qiita
https://qiita.com/kimo_0tak/items/970a8171ac5524fbd8e3

それから、日本語が入力できなかったため修正。
CentOS って Ubuntu と違って大変なのかな?
dnf -y install libkkc ibus-kkc libkkc-data

漢字入力ができないとき(CentOS 8) – ITわかり隊
https://ufuso.jp/wp/%E6%BC%A2%E5%AD%97%E5%85%A5%E5%8A%9B%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D%EF%BC%88centos-8%EF%BC%89/

heroku の登録と heroku toolbelt のインストール

公式サイトに従って snap 経由でインストール。
そのために snap を入れる必要があったので、それも公式サイトに従ってインストール。
snap の公式サイトに従って、EPEL を先にインストールした。

ローカルの環境構築

git も入れとけ。
$ sudo yum install -y git

rbenv と ruby も入れとけ。
ruby-build というのも入れた。

CentOs8にRubyをインストール | mebee
https://mebee.info/2019/10/21/post-2458/

g++ がない! と言われたのでインストールした気がする。

$ sudo yum -y install gcc-c++

make がない! とも言われたのでインストールした気がする。

BUILD FAILED (CentOS Linux 8 using ruby-build 20200401-9-g3ef704e)

Inspect or clean up the working tree at /tmp/ruby-build.20200424165738.22294.3GCzrm
Results logged to /tmp/ruby-build.20200424165738.22294.log

Last 10 log lines:
checking for _setjmp as a macro or function... yes
checking for sigsetjmp as a macro or function... no
checking for setjmp type... __builtin_setjmp
checking for prefix of external symbols... NONE
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking if make is GNU make... ./configure: line 29167: make: command not found
no
checking for safe null command for make... configure: error: no candidate for safe null command

$ sudo yum install make

リポジトリの作成

bundler を使う設定でリポジトリを作成する。

新規Railsプロジェクトの作成手順まとめ – Qiita
https://qiita.com/yuitnnn/items/b45bba658d86eabdbb26

rails new コマンドが呪文っぽい。

bundle exec rails new . -B -d mysql --skip-turbolinks --skip-test

Rails環境構築続き

エラーメッセージが出るので、それに従って、
webpacker, yarn, nodejs, mysql あたりもインストール。
素人なので、パッケージ名 + CentOS8 で検索した。
かなりヒットするのでありがたい。
このあたりは Ubuntu よりも情報が多かったりするのだろうか。気のせい?

それから、mysql はインストールしたら起動する必要がある。
いや、当たり前か?

[cocoa@localhost whiteless_works]$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[cocoa@localhost whiteless_works]$ ps aux | grep mysql
cocoa     63041  0.0  0.0  10280   988 pts/0    S+   17:30   0:00 grep --color=auto mysql
[cocoa@localhost whiteless_works]$ service mysqld start
Redirecting to /bin/systemctl start mysqld.service
[cocoa@localhost whiteless_works]$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye

その後、DB が無いと怒られるので、DBを作成

$ bundle exec rake db:create

あとは変更のあったファイルをコミットして heroku に push すればデプロイは OK

Herokuで独自ドメイン + SSL 対応

あとはこれに従って独自ドメインに対応。
完全無料っぽいけどクレジットカード登録は必要っぽい。
Heroku側でドメインを登録。
本当にお金かからないのかな?

【完全無料】Herokuで独自ドメイン + HTTPSに対応する【Rails】 https://qiita.com/serinuntius/items/f7f08b2221f5ad068f5d #Qiita

【無料】Cloudflareを使ってHerokuで独自ドメインで運用する方法 https://qiita.com/healing_code/items/0e334606709fb9deae87 #Qiita

24時間掛かったりするらしいと書いてあったけど自分の場合は数時間で見られるようになった。

いかがでしたか?


追伸

MySql2 (ClearDB) の設定追加が必要らしい。
その後 migrate して seed した。

Herokuへのデプロイ方法【Heroku+Rails+MySQL】 https://qiita.com/murakami-mm/items/9587e21fc0ed57c803d0 #Qiita


2021/2/24 追記

heroku-accountsも導入しました。ただしdeprecatedらしいです。

heroku の複数アカウント管理(備忘録) https://qiita.com/kamillle/items/687f8fc0634aef1c11f0 #Qiita

deprecatedなのが原因なのか、$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git だとエラーになってしまいましたが、$ heroku plugins:install heroku-accounts だと上手く行ったみたいです。

2回目以降はmysqlなどのインストールはスキップできますね。

$ bundle init
$ vim Gemfile
$ vim .gitignore # https://www.gitignore.io/api/rails
$ bundle install --path vendor/bundle
$ bundle exec rails new . -B -d mysql --skip-turbolinks --skip-test
Overwrite /home/cocoa/projects/hatoqnet/.gitignore? (enter "h" for help) [Ynaqdhm] n
Overwrite /home/cocoa/projects/hatoqnet/Gemfile? (enter "h" for help) [Ynaqdhm] y
$ bundle install
$ bundle exec rails webpacker:install # Webpacker configuration file not found と怒られたので実行
$ bundle exec rails db:create
$ bundle exec rails s

動作確認できたらherokuにpushします。クレジットカード情報の登録を忘れずに。

$ heroku accounts:set xxxxxxxx
$ heroku git:remote -a yyyyyyyy
$ heroku addons:create cleardb:ignite
$ # DB接続設定の編集
$ # config/environments/production.rb の編集
$ git push heroku master