0

我创建了一个 Rails Web 应用程序,推送到 github,然后拉到 Raspberry Pi 上。与 db:migrate 一起运行“rake db:create RAILS_ENV=production”。

当我运行 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 文件,使其包含数据库文件的完整路径而不是相对路径。

不知道还有什么可以尝试的。

4

1 回答 1

-1

这是因为 nginx 创建 www-data 用户,并且该用户没有读取 sqlite3 文件和您的应用程序的权限...

您需要运行以下命令:

  1. sudo chown -R www-data:www-data rails_project/
  2. sudo chmod -R 777 rails_project/
于 2014-07-22T22:02:10.470 回答