【问题标题】:After deploying Rails app SQLite3::CantOpenException:部署 Rails 应用程序 SQLite3::CantOpenException 后:
【发布时间】:2012-09-21 07:13:55
【问题描述】:

我尝试部署一个 Rails 应用程序。我使用带有 sqlite3 数据库的 apache。通过乘客和 capistrano 的配置效果很好。

但是当我启动服务器并尝试修改数据库时,我收到以下错误:SQLite3::CantOpenException: unable to open database file

我已经 chmod 777'ing production.sqlite3 。 我将production.sqlite3 放入foofoo/foo/shared 并配置了database.yml

production:
adapter: sqlite3
database: /foofoo/foo/shared/production.sqlite3
pool: 5
timeout: 5000

(PS rails 3.2.3,ruby 1.9.3,sqlite 3.7.9)

【问题讨论】:

  • 您是否也可以访问每个子目录 (/foofoo/foo/shared/)?
  • 是的,访问所有子目录,所有者是 www-data
  • 你跑rake db:create了吗?
  • rake db:create db:migrate db:seed RAILS_ENV='production'
  • 等一下,“我将 production.sqlite3 放入 testcap/shared”和“数据库:/foofoo/foo/shared/production.sqlite3”。你确定这是正确的道路吗?

标签: ruby-on-rails sqlite deployment


【解决方案1】:

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

你需要运行这个命令:

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

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2011-09-09
    • 2015-08-09
    • 2018-09-10
    相关资源
    最近更新 更多