heroku アプリの操作コマンド

heroku アプリの操作コマンド

heroku にアップしたアプリは
heroku コマンドでいじれます

heroku ps コマンドで
linux の ps コマンドのようにプロセスをみることができます

単純に

heroku ps

とするだけでOK

まず

cd heroku/mymemo

で作成したアプリに移動し

heroku ps

とすると
実行結果に

Free quota left: 17h 26m
=== web (Free): bundle exec rails server -p $PORT (1)
web.1: idle 2016/04/19 09:58:50 +0900 (~ 20h ago)

と表示されます

ちなみに Dyno を2つにすることもコマンドから可能

ただし、Dyno を2つにすると課金対象になりますので
注意

 heroku ps:scale web=2

とすればできるけど
アカウントでクレジット情報がない場合

Scaling dynos... !!!
 ▸    Cannot update to more than 1 Free size dynos per process type.

とでて増設はできないようです

これは自分でサービスを展開するときに使いそうです
AWSも同じで使う用途により増設可能なのがメリット

そして heroku のアプリログをみるには
heroku logs
を使います

linux のログをみるかんじだけど
デフォルトだと1500行までしか保存されないようです

なおリアルタイムでログを監視するのなら

heroku logs --tails

とすればリアルタイムモードになります

この状態でお試しで
https://shrouded-chamber-59024.herokuapp.com/memos/
にアクセスするとログが増えました

今回のログは

2016-04-19T21:59:32.585938+00:00 heroku[router]: at=info method=GET path="/memos/" host=shrouded-chamber-59024.herokuapp.com request_id=2336dcaa-8365-4b15-9890-2da17941cd9b fwd="126.251.50.125" dyno=web.1 connect=3ms service=9ms status=200 bytes=1883
2016-04-19T21:59:32.577420+00:00 app[web.1]: Started GET "/memos/" for 126.251.50.125 at 2016-04-19 21:59:32 +0000
2016-04-19T21:59:32.579325+00:00 app[web.1]: Processing by MemosController#index as HTML
2016-04-19T21:59:32.581406+00:00 app[web.1]:   Memo Load (0.9ms)  SELECT "memos".* FROM "memos"
2016-04-19T21:59:32.582225+00:00 app[web.1]:   Rendered memos/index.html.erb within layouts/application (2.1ms)
2016-04-19T21:59:32.582902+00:00 app[web.1]: Completed 200 OK in 4ms (Views: 2.1ms | ActiveRecord: 0.9ms)

というかんじです

次に管理するときに使うメンテナンスモードについて
これは

herku maintenance:on 

とするとメンテナンスモードになります

この状態でブラウザからアクセスすると
メンテナンス中であることが表示されます

heroku9

メンテ中であるかを調べるには

heroku maintenance

とすることで表示できます

on ならメンテ中です

メンテをオフにするなら

heroku maintenance:off

とすれば解除して稼働状態に戻ります

heroku へのソースコード push

heroku へのソースコード push

git push heroku master

で転送できます

次にDBの設定
これは heroku で行います

DBに関しては
Add-On で対応するので
heroku コマンドを使い、アプリに
PostgreSQL の Add-On をつける

heroku addons:add heroku-postgresql

を実行すると
DB名が
HEROKU_POSTGRESQL_SILVER_URL
となっているのでDBが使えるようになります

次にマイグレーションを実行します
heroku 側のアプリに対してコマンドを実行するには
heroku run を使います

heroku run rake db:migrate

でOK

これでブラウザからアクセスして試したいのですが
アプリのURLを忘れた場合

 heroku apps:info

とすれば調べることができます

今回は

Addons:        heroku-postgresql:hobby-dev
               heroku-postgresql:hobby-dev
Dynos:         web: 1
Git URL:       https://git.heroku.com/shrouded-chamber-59024.git
Owner:         snowpoollovely@gmail.com
Region:        us
Repo Size:     37 KB
Slug Size:     45 MB
Stack:         cedar-14
Web URL:       https://shrouded-chamber-59024.herokuapp.com/

となりました

これでアクセスしたものの

An error occurred in the application and your page could not be served. Please try again in a few moments.

If you are the application owner, check your logs for details.
となりエラーになります

herokuapp

heroku が動いていない可能性を考え

heroku ps:scale web=1 

を実行したもののすでに
now running となっているので別の問題ということに

Procfile を確認してみたら

web: bundle exec rails server - p $PORT

となっていたのが原因

これを修正し、再度

git add .
git commit -m "procfile 修正"
git push heroku master 

で再度転送すると、無事に稼働させることができました

herokuapp2

heroku 稼働のための rails アプリ(練習)その3

heroku 稼働のための rails アプリ(練習)その3

git で commit したものを
heroku に送るための準備をします

方法については
Rails+Herokuで5分でWebアプリ作るおっ( ^ω^)


ドットインストールを参考にさせていただきました
#06 heroku createしてみよう

ソースコードを送るには
ライブラリ依存関係を記したファイルと
Procfile が必要になるのでこれらを作成

Rails の場合、ライブラリの依存関係を示したファイルは
Gemfile としてすでにあるけど
Rails アプリをheroku で動かす場合
特殊な Gem が必要なので
Gemfile を編集します

cd heroku/mymemo/

でプロジェクトに移動し

vim Gemfile

で編集します

使用する gem は
rails_12factor なので
ファイル末尾に

gem 'rails_12factor', group: :production

として保存

group: :production
は本番環境でのみ使うときに指定

次に

bundle install

で反映します

次に Procfile の作成

vim Procfile

で作成して編集します

書き方にルールがあり、
web に関するものは
web というキーワードと決まっているので

web: bundle exec rails server - p $PORT

として保存

-p はポートの指定で
$PORT は環境変数のようなもの
これは Linux の $HOME とかと同じかんじ

キーワードは
web 以外にも
worker にすればバックグランドジョブだったりと
いろいろあるので調べてみるといいかも

ここまでできたら
git にこれらの追加したファイルを反映させます

git add .

ですべてのファイルを対象に追加します
. を指定すればすべて反映になります

次にコミットしたいので

git commit -m "Gemfile update  Procfile add"
と
-m オプションでコメントをつけておきます


次に Heroku へアプリを作成します

heroku create

を実行すると作成されます

実行すると、ログへ

https://shrouded-chamber-59024.herokuapp.com/ | https://git.heroku.com/shrouded-chamber-59024.git

と出ているので
https://shrouded-chamber-59024.herokuapp.com/
でアクセスできるようになってます

あと、heroku create すると
git のリポジトリも作成されるので
これを使えばgit で Heroku にソースコードをプッシュできます

ubuntu 14.04 に Evernote クライアントのインストール

ubuntu 14.04 に Evernote クライアントのインストール

Evernote を使うようになってきたので
ubuntu でも管理できるようにクライアントソフトの
everpad をインストールします

sudo add-apt-repository ppa:nvbn-rm/ppa

でリポジトリを追加

sudo apt-get update

でリポジトリ更新

sudo apt-get install everpad

でインストールできます

なお GitHub でソースが公開されています
https://github.com/nvbn/everpad

あとは Everpad を起動すれば
画面の右上にノートのアイコンがでるので
Setting and Management
をクリックします

everpad

Screenshot from 2016-04-17 07:19:53

すると設定画面になるので

everpad3

Authorities をクリックすると
Evernote の認証画面になりますので
アカウント情報をいれて
サインインをクリックします

everpad5

するとどの期間までアクセス可能にするか設定できるので
まずは1年間で行ってみました

everpad6

設定したら
承認するをクリックします

次に間隔の設定です
Sync delay はデフォルトで
30 minutes になっているので
これを
5 minutes にしました
これは同期する時間の設定で
minutes は分単位です

そして
Start with system にチェックをいれておきます

これらを終わらせたら
ノートのアイコンから
Please perform first sync
をクリックすれば同期されます

その後は
Last sync just now
をクリックすればすぐに同期できます

everpad7

なお
Evernote の使い道などに関しては
「Evernote」を十分に活用するための100の使い方

を参考にされるとよいかもしれません

私の使用用途はアイデアメモと
仕事の打ち合わせに使おうかなというかんじです

heroku 稼働のための rails アプリ(練習)その2

heroku 稼働のための rails アプリ(練習)その2

前回 Rails アプリの立ち上げまでできたので
Scaffold で設定

実行環境は ubuntu 14.04 64bit

続きからやるので、rails アプリのディレクトリまで移動

cd heroku/mymemo

次に scaffold 機能を使用

rails g scaffold Memo title:string body:text

gは generate の略

次に

rake db:migrate


マイグレーションすることでDB作成されるので

rails s

で動作確認

ブラウザで
http://localhost:3000/memos
へアクセスすると表示されるのを確認

heroku6

なお、IPアドレス:3000/memos
でもいいけどローカル環境なので、とりあえずlocalhost でアクセスしました

データ追加できるか実験もしておきたいので
New memo をクリック

入力画面になるので適当にデータをいれます

heroku7

これでデータが追加され、新しく項目が増えました

heroku8

動作確認はOKなので、これをgit に登録します
とはいってもローカルの git ですが

そして後で Heroku に登録するようにします

ctrl + c で サーバーを一度停止しておきます

まず

git init 

でリポジトリを作成します

次にインデックスに追加するので
git add を実行します
パラメータに . を指定するとすべてのファイルが対象になります


あとはコミットするのですが -m オプションを使い
コメントをつけておきます

git commit -m "initial commit"

“initial commit”
の部分がコメントになります

とりあえず git までできたので
次回は rails アプリを heroku に送る設定をしていこうと思います

heroku 稼働のための rails アプリ(練習) その1

heroku 稼働のための rails アプリ(練習)

まずは ubuntu で rails アプリをつくり
これを heroku に送るようにします

heroku の標準は postgresql なので
アプリを作成するときに
postgresql を使うように設定します

 rails new mymemo -d postgresql 

を実行
しかしエラーがでるため

/versions/2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'

で検索し
bundle install時のエラー
https://teratail.com/questions/23754
を参考に

gem install bundler 

を実行

次に

bundle install

を実行したものの
Rails Could not locate Gemfile
とエラーがでるので、これも検索

Rails Could not locate Gemfileエラーについて

によれば
実行したディレクトリに Gemfile が存在しないため
このため作成した mymemo に移動し実行

cd mymemo

で移動し

vim Gemfile
[・shell]
で設定ファイルを開き
15行目の

# gem 'therubyracer', platforms: :ruby

の先頭の#を削除し有効化

これで

bundle install

を実行したもののエラー

An error occurred while installing pg (0.18.4), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.4'` succeeds before bundling.

となってしまうため

gem install pg -v '0.18.4'

を実行したもののこれもエラー

これを解決するために gem の postgreSQL をインストールする方法を探すことに

How to install PostgreSQL’s pg gem on Ubuntu?

を参考に

sudo apt-get install libpq-dev

で必要なライブラリをインストールしてから

bundle install

を実行することで無事にインストールできました

これで解決と思ったけど
localhost:3000 でアクセスするとエラー

heroku2

 gem install pg -v '0.18.4'

で追加したけど変わらず

ActiveRecord::NoDatabaseError
で検索することに

Railsでデータベースに接続できなくてエラーがでる

を参考にユーザが存在しないのを確認

sudo su postgres

でユーザを切り替え

createuser -P snowpool

でユーザを追加

これで解決すると思ったら、今度はDBが存在しないというエラーが発生

heroku3

createdb mymemo_development;

でDBを作成
念の為、できているかを

psql -l

で確認

heroku4

これで ctrl + d でユーザを戻し

rails s

を実行し。エラーがないことを確認

heroku5

とりあえずここまでできたので、次は Scaffold 機能の実験

heroku toolbelt インストール

heroku toolbelt インストール

ubuntu 14.04 にheroku toolbeltをインストールします

方法は
https://toolbelt.heroku.com/debian
に表示されてるので、これを参考にインストールします

herokutoolbelt

heroku toolbelt は Heroku コマンドを使うためのものです

wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh

を実行すると 管理者パスワードを聞かれるので
通常はログインユーザパスワードをいれます

これでインストールをやってくれます

バージョンの確認は

heroku --version

とすればOK

次に heroku へログインするため

heroku login

を実行

すると
Email:
とでるのでHeroku で登録したメルアドを入力

Password (typing will be hidden):
とでたら Heroku のパスワードを入力
なお、セキュリティのため、パスワードは表示されません

これでログインできます
本来は公開鍵の登録があるようですがでなかったので
今後作成してみようと思います

はじめての ruby on rails

はじめての ruby on rails

rails を使いアプリを作るには rails new コマンドを使う

rails new アプリ名
となる

なお、以前に rails をインストールしたものの
.bash_profile にパスを通しても
反映されていないため、
.bashrc にパスを通すことに

Ruby on Rails 4.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました

を参考に、パスを通すようにしました

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

今回は

rails new myapp

とした

実行するといろいろファイルが作られ
最後 bundle install が実行される

この bundle install は
必要なライブラリをインストールしている状態のこと

なお、実行にはかなり時間がかかる
終わったら

cd myapp 

して

rails server

を実行すれば php -S でやったように
サーバーが起動する
なお、略式で

rails s 

でもOK

もしエラーがでるのなら

vim Gemfile 

で設定ファイルを編集する

これで

rails s 

でサーバーを起動し

WEBrick::HTTPServer#start: pid=5181 port=3000

というようにでればOK

これは WEBrick というサーバーで
ポート3000番で起動している

なので
http://IPアドレス:3000
でアクセスできる

以下のように表示されればOK

rails

必要なものは
app
config
db
の内容

app の中に
Model
View
Controller
があるのでここにプログラムを書いていくことになる

Heroku の登録

Heroku の登録

https://www.heroku.com/
にアクセスし
SIGN UP FOR FREE
をクリックします

Screenshot from 2016-04-02 00:04:23

次に登録画面になります

First name には名前
Last name には苗字

Email にはメルアド

Pick your primary development language
は使用する開発言語なので
今回は ruby を選択します

入力ができたら
Create Free Account をクリックします

Screenshot from 2016-04-02 00:07:15

すると heroku からのメールにリンクがはられているので
これをクリックします

するとパスワード設定画面になるので
Password にパスワード
Retype password
に確認のためもう一度同じパスワードをいれ
Set pssword and log in
をクリックします

Screenshot from 2016-04-02 00:15:29

Help me get the most out of Heroku with occasional product updates, technical content and related benefit information. We won’t spam you, and you can unsubscribe at any time.

そのままチェックをいれておきました

これで登録完了となり、
Click here to proceed as メールアドレス
をクリックするとログインできます

Screenshot from 2016-04-02 00:22:37

Screenshot from 2016-04-02 00:26:16

ubuntu 14.04 に postgresq のインストール

ubuntu 14.04 に postgresq のインストール

sudo apt-get install postgresql

でインストールします

次に phpmyAdmin のような PGadmin3 のインストール

sudo apt-get install pgadmin3

次にpostgres ユーザのパスワードの設定

sudo passwd postgres

パスワードはセキュリティのため表示されません

次に postgresql の再起動

sudo /etc/init.d/postgresql restart

次にローカルホスト接続できるように
設定ファイルの変更

sudo vim /etc/postgresql/9.3/main/postgresql.conf

でファイルを開き編集

59行目の

#listen_addresses = 'localhost'         # what IP address(es) to listen on;

の行頭の#を削除します

ちなみにサーバーの設定ファイルでは# は
コメントアウトになります

sudo /etc/init.d/postgresql restart

で postgresql を再起動し設定を反映します

そして postgrsql ユーザの postgresql でのパスワードを変更します

ちなみに root でないのは PostgreSQL のセキュリティ仕様のため
Amazon Linux みたいに root で起動ができません

まず

su - postgres

で postgres ユーザに切り替えます

次に postgreSQL にログインしたいので

psql 

を実行

alter role postgres with password 'パスワード';

でパスワード設定

postgreSQL を抜けるには

\q

を実行します

これで postgreSQL のインストールは完了です