サーバ上でのrailsの動かし方とその際におこるエラー

railsを使ってwebサービスを作ってそれをサーバーにデプロイするまでの手順とエラーを紹介していきます。サーバーはさくらVPSを使用しています。

  • sshでサーバーにログイン
  • railsプロジェクトのインポート
  • 実際にうごかす。

大まかな流れとしてはこんな感じです。今回は開発環境の構築方法については省きます。

sshでサーバーにログイン

サーバにログインする際には「ssh」コマンドを使います。

$ ssh ホスト名 or IPアドレス

 また、ユーザーを指定してログインする際には

$ ssh user名@IPアドレス 

 といった感じにするとログインすることができます。また、ポート番号をしてのログインは

$ ssh user名@IPアドレス -p ポート番号 

 といった感じになります。

railsプロジェクトのインポート

サーバーにgitからソースをクローンしてプロジェクトをインポートをします。一応はコマンドはしたのような感じです。

git clone ~~ 

 実際にうごかす

railsプロジェクトをインポートしたらまずは「bundle install」をして「rake db:migrate」をして実行するのですが、ここでは自分が遭遇したさまざまなエラーと解決法を紹介していきます。

rake db:migrate でのエラー

「bunsle install 」が無事に完了してdbを作成しようとおもったのですが、以下のようなエラーが起きてしまいました。

rake aborted!

invalid byte sequence in US-ASCII

 

(See full trace by running task with --trace)

 原因

これはこのプロジェクト内に日本語のファイル名のものが存在していたのが原因でした。サーバーのencodingがUTF-8のため、US-ASCIIの文字列が含まれているとこのようなエラーが起きてしまいます。

解決法

日本語のファイルを削除、またはファイル名を変更することで「rake db:migrate」が通るようになります。

LoadError cannot load such file -- sass

dbの作成が終了して、これでいけるだろうっと実行してみると今度はこんなエラーがおきました。なんかsassファイルを読み込んでくれない。。。

f:id:pgpg-sou:20131208180449p:plain

原因

このプロジェクト作成当初はbootstrapを導入していなかったため、stylesheetの拡張子が「less」でなく「sass」でした。

その名残ファイルがまだ、残っていたみたいでsassを読み込むためのgemを導入する必要がありました。

解決法

解決法は以下の2つです。

  1. sassのgemをインストール
    こちらはいろいろやってみたのですが、うまくいきませんでした(笑)
  2. sassファイルを削除する
    1の方法で失敗してうまくいかなかったため、sassファイルを削除すると成功しますw

SyntaxError

さて、やっと表示されたかなと思ったら、今度は下のような画面になっちゃっいました。

f:id:pgpg-sou:20131208183450p:plain

コンソール上でエラーを確認すると、下のようなエラー文がでてました。

invalid multibyte char (US-ASCII) 

原因

ページ上にUS-ASCIIの文字列があったため、うまくエンコーディングができなかったためにこのようなエラーがおきてしまいました。

解決法

この解決方法は簡単で、表示したいviewのcontrollerの先頭に以下の文を付け加えるとなおります。

# encoding: utf-8