人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

さくら専用サーバ上にてRailsアプリを動かそうとしています.
必要なパッケージは全てインストールしたのですが,dbを扱った場合[例:Sample.find(?)]はエラーが表示されてしまいます.
db関連はsqlite3を扱っているため,sqlite3関係に何か不具合があると思われます.

したがって,sqlite3本体,sqlite3-rubyのどちらか(両方)になりますが,どちらも何を持って正しくインストールされているのか(あるいは正常な状態なのか)が分かりません.

自分の考えられる範囲では,

gem sqlite3-ruby

でインストールされたファイルが正しく対象とするrubyのフォルダ下にあるので,(たぶん)sqlite3-rubyに問題はないと思っています.

なのでsqlite3本体となるのですが,これは標準で入っているため不具合が起きることはあまり考えられません.
強いて言うならruby,rails,gemのパスが/usr/local/binに対してsqlite3のパスは/usr/binであるので,これが影響しているのか?ぐらいです.
もしかしたらsqlite3-rubyがsqlite3にアクセスできていないのかもしれません.
何かこれらに関してアドバイスがありましたら,教えていただけますでしょうか?
よろしくお願いします.

●質問者: j2kondo
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:dB gem Rails Ruby さくら
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● ko8820
●10ポイント

保存するデータベース(SQLite)の保存場所の指定は正しいですか?

DBファイルとしてファイルが必要ですが大丈夫でしょうか?

◎質問者からの返答

回答ありがとうございます.

指定場所は正しいです.dbファイルもあります.

ローカルサーバで一度正しく表示できたアプリをアップしているので,そこの問題は無いと思われます・・・


2 ● louis1011
●0ポイント

サーバの環境を教えてください。

◎質問者からの返答

回答ありがとうございます.

環境は以下の通りです.

バージョンは開発環境に合わせています

CentOS 5.4

Rails 2.3.5

gem 1.3.5

ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]

sqlite3 3.3.6

rubyファイル:

/usr/local/lib/ruby/以下

rubyパス:

/usr/local/bin/ruby

railsパス:

/usr/local/bin/ruby

sqlite3パス:

/usr/bin/sqlite3

その他1:

phusion passengerにてapache上でrailsアプリを動かしています.

以下パスの参照設定

LoadModule passenger_module

/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so

PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.11

PassengerRuby /usr/local/bin/ruby

その他2:

ネットで見つけたsqlite3-rubyの動作検証をしてみましたが正しく出来ているような気がします.

[root@localhost usr]# irb --prompt simple

>> require 'rubygems'

=> true

>> require 'sqlite3'

=> true (ここは,時々ですがsqlite3が見つからないと出ます・・・)


3 ● koriki-kozou
●0ポイント

エラー内容によっては詳細な対応が可能な場合もある

下記環境であるとすればパーミッションの見直しだけで直るかもしれない

http://cache.baidu.jp/jp?word=centos%2Crails%2Csqlite%3B3&url=ht...

◎質問者からの返答

回答ありがとうございます.

そうです!

URL先にある内容は以前投稿した記事なので(キャッシュで残っていたのですね),環境は全く同じです.

パーミッションとはどこのファイルの事でしょうか?

ちなみに以下のサイトの項目「sqlite3-ruby のインストール」で確認しているパーミッションは,どのファイルも‘r’になっていました.

http://blog.designrecipe.jp/2008/7/13/cent-os-5-2-ruby-on-rails

----------------

パーミッション情報:

[root@localhost ~]# cd /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3

[root@localhost sqlite3]# ll

total 76

drwxr-xr-x 4 root root 4096 Apr 28 19:05 driver


4 ● koriki-kozou
●0ポイント

>パーミッションとはどこのファイルの事でしょうか?

データベースファイルのパーミッション


>以前投稿した記事

質問文を元にしてキャッシュを探すなど造作も無いこと

残念ながら専用サーバの仕様は独自となるため想定が難しい

どうしてエラー内容を記述しないのかが謎


回答受付50回でも連休前で次はいつ回答するかわからない

会社から回答していたようなスキルの高い人々は来ない/見ない可能性も高い

ご自身の推理も必要だが出来る限り詳細な情報を一度に開示することをより考えるほうが解決への近道


以上コメント欄程度の内容を回答欄に記述したことは失礼

◎質問者からの返答

ご指摘ありがとうございます.

エラー内容を提示したかったのですがどこのログも記述されておらず載せることができませんでした.

しかし,ログのパーミッションを変更した結果,エラー内容を確認することができました.

以下がそのエラーログです.

Processing HelloController#index (for 122.21.220.44 at 2010-04-28 23:29:44) [GET]

SQLite3::CorruptException (database disk image is malformed):

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/errors.rb:62:in `check'

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/statement.rb:39:in `initialize'

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/database.rb:154:in `new'

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/database.rb:154:in `prepare'

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/database.rb:202:in `execute2'

/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/pragmas.rb:217:in `table_info'

app/controllers/hello_controller.rb:5:in `index'

passenger (2.2.11) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'

passenger (2.2.11) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'

passenger (2.2.11) lib/phusion_passenger/railz/application_spawner.rb:418:in `start_request_handler'

passenger (2.2.11) lib/phusion_passenger/railz/application_spawner.rb:358:in `handle_spawn_application'

passenger (2.2.11) lib/phusion_passenger/utils.rb:184:in `safe_fork'

passenger (2.2.11) lib/phusion_passenger/railz/application_spawner.rb:354:in `handle_spawn_application'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in `__send__'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:163:in `start'

passenger (2.2.11) lib/phusion_passenger/railz/application_spawner.rb:213:in `start'

passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'

passenger (2.2.11) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'

passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'

passenger (2.2.11) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'

passenger (2.2.11) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'

passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'

passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application'

passenger (2.2.11) lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in `__send__'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'

passenger (2.2.11) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

Rendering /var/www/html/uncer/public/500.html (500 Internal Server Error)


ちなみに

>データベースファイルのパーミッション

は全て‘r’になっていました.


5 ● hanako393
●0ポイント

>指定場所は正しいです.dbファイルもあります

書き込み権限はありますか?

◎質問者からの返答

>書き込み権限はありますか?

ありませんでした.

パーミッションを変更して再度表示してみましたが,結果は同じでした・・・

原因は下の返信のようです.


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ