Rails错误:无法打开数据库文件(SQLite3 :: CantOpenException)

时间:2013-11-10 22:57:06

标签: ruby-on-rails sqlite

我创建了一个Rails Web应用程序,推送到github,然后下载到Raspberry Pi上。 执行“rake db:create RAILS_ENV = production”以及db:migrate。

当我运行WEBrick服务器(在生产环境中)时,它完美运行。但是当我尝试通过Apache运行它时,我得到了Phusion Passenger错误屏幕:

Web application could not be started
unable to open database file (SQLite3::CantOpenException)
 /usr/local/rvm/gems/ruby-2.0.0-p0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/sqlite3_adapter.rb:26:in `initialize'
/usr/local/rvm/gems/ruby-2.0.0-p0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/sqlite3_adapter.rb:26:in `new'
/usr/local/rvm/gems/ruby-2.0.0-p0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/sqlite3_adapter.rb:26:in `sqlite3_connection'

我已经将production.sqlite3文件的所有者和组更改为“www-data”和chmod 666.还编辑了database.yml文件,使其包含数据库文件的完整路径,而不是相对路径

不确定还有什么可以尝试。

1 个答案:

答案 0 :(得分:0)

这是因为nginx创建了www-data用户,而且这个用户没有优先阅读sqlite3文件和你的app ...

您需要运行此命令:

  1. sudo chown -R www-data:www-data rails_project/
  2. sudo chmod -R 777 rails_project/