今日の日記
今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。
平日の電車の中とか寝る前とかにコツコツ読んで、読み終えました。
第五章も読み終えたけど、第五章は読むだけじゃなくてコード書いた方が良さそうだなということでコード書きます。
bundle installをしようと思ったら以下のようなエラーが出ました。
Could not fetch specs from https://rubygems.org/
参考にさせて頂いたページにならって、vagrant reload
したらbundle installできるようになりました。
今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。
scaffoldで作成したアプリケーションの構成をもとにrailsアプリケーションの概要を学習しました。
ここはとりあえず読むだけでいいかなという気がしたのでそのまま第三章に進みます。
第1章 ゼロからデプロイまで | Rails チュートリアル
今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。
railsアプリケーションをpushするにあたって、production環境でpgが有効になるようにGemfileとGemfile.lockを編集する必要がありました。
ハマったりしましたが、新たにheroku create
し直したり、Herokuのログを確認する方法を調べたりして解決できました。
rails tutorialの第一章が完了しました。
localの開発環境構築と公開されているサーバへのデプロイができたので、ハマりがちな環境構築を切り抜けて一安心です。
sqlite3をdevelopment環境で使用しており、herokuではpostgresqlを使う必要があるようなのでGemfileを以下のように編集しました。
他にも使い分けたいgemがあれば記述します。
sqlite3をdevelopmentとtestで使用する設定にします。
group :development, :test do gem 'sqlite3', '1.3.13' end
production環境ではpgを使用する設定にします。
pgはpostgresqlらしいです。
group :production do gem 'pg', '0.20.0' end
Gemfileを変更したらbundleインストールしますが、localhostの開発環境で以下のコマンドを実行しておきます。
bundle install --without production
Gemfile.lockが更新されます。
以下のコマンドでデプロイしました。
git push heroku master
前回の記事と比べるとrailsアプリケーションは時間がかかっています。
デプロイは成功したようですが、ページは上手く表示されず以下のように表示されてしまいました。
We're sorry, but something went wrong. If you are the application owner check the logs for more information.
pushしたコマンドプロンプトから、以下のコマンドを実行するとログが確認できます。
heroku logs -t
または、webブラウザでHerokuにログインして、アプリケーションを選択して、右上の「More」をクリックすると、「View logs」というリンクがあるのでクリックするとログが見えます。
私の場合はSQLのSELECTを実行するところで「テーブルが無い」というエラーが出ていました。
さきほどの「More」をクリックすると、「Run console」というリンクがあるのでクリックするとサーバー上でコマンドが実行できます。
rails5なので、bashとプレースホルダーがあるフィールドに、以下のように入力しました。
rails db:migrate
テーブルが作成されて、ページが正常に表示されるようになりました。
アカウント作成はすぐできました。
参考にさせて頂いたページはスクリーンショットも付いて解りやすいですね。
「Heroku CLI | Heroku Dev Center」から、heroku-cli-x64.exeのダウンロードをしてインストールしました。
Heroku CLI 6.14.36 がインストールされました。
あらかじめbitbucketで作成しておいた空のリポジトリをcloneしました。
以下の通り作成してコミットしました。
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>sample</title> <meta charset="utf-8"> </head> <body> Hello World </body> </html>
上記のcloneしたディレクトリにコマンドプロンプトで移動して、以下のコマンドを実行しました。
heroku login
以下のような表示でEmailとPasswordを入力したらログインできました。
Enter your Heroku credentials: Email: Password: Logged in as <your mail address>
以下のコマンドを実行しました。
heroku create
以下のような表示がされて、アプリケーションが作成されました。
Creating app... done, cryptic-stream-72356 https://cryptic-stream-72356.herokuapp.com/ | https://git.heroku.com/cryptic-stream-72356.git
上記した手順でindex.phpを作成しているわけですが、index.htmlを作成したらpushに失敗したからindex.phpにしているという経緯もあります。
以下のコマンドでHerokuのサーバにデプロイします。
git push heroku master
以下のように表示されました。
Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (6/6), 985 bytes | 0 bytes/s, done. Total 6 (delta 0), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> PHP app detected remote: remote: ! WARNING: No 'composer.json' found. remote: Using 'index.php' to declare app type as PHP is considered legacy remote: functionality and may lead to unexpected behavior. remote: remote: -----> Bootstrapping... remote: -----> Installing platform packages... remote: NOTICE: No runtime required in composer.lock; using PHP ^5.5.17 remote: - apache (2.4.20) remote: - nginx (1.8.1) remote: - php (5.6.31) remote: -----> Installing dependencies... remote: Composer version 1.5.2 2017-09-11 16:59:25 remote: -----> Preparing runtime environment... remote: NOTICE: No Procfile, using 'web: heroku-php-apache2'. remote: -----> Checking for additional extensions to install... remote: -----> Discovering process types remote: Procfile declares types -> web remote: remote: -----> Compressing... remote: Done: 13.7M remote: -----> Launching... remote: Released v3 remote: https://cryptic-stream-72356.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done. To https://git.heroku.com/cryptic-stream-72356.git * [new branch] master -> master
以下のURLにアクセスしたらデプロイしたページが表示されました。
https://cryptic-stream-72356.herokuapp.com/
他の人がまだ使用していない名前に変更できるようです。
以下のコマンドで変更します。
xxxxの部分は任意で名前を設定してください。
記号はハイフンだけが使用できるようです。
heroku rename xxxx
でページが表示できるようになります。
以下のコマンドでログアウトします。
heroku logout
以下のコマンドを実行しました。
git config --list