1

我有一个 Rails 应用程序,它在带有 Apache 和 Phusion Passenger 的开发 VPS Ubuntu 服务器上运行。我在本地机器上开发了应用程序,应用程序运行完美。我部署了应用程序,运行所有捆绑安装,我正在运行与本地计算机相同的 gem、rails、rvm 和 rake 版本,并且我已经成功迁移了数据库 (SQLite)。

但是在我的 VPS 上,它也在开发环境中运行,所有路由都返回 500 错误。我用 Google 搜索了两天,但无法启动和运行。我的开发日志只返回一行:

Connecting to database specified by database.yml

这是我的 database.yml 设置正确,VPS 服务器上也存在 db/development.sqlite3。

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

我很绝望现在该怎么办。我已经安装了 sqlite,所有与本地机器相同的 gem,.. 我在这里缺少什么?

4

2 回答 2

1

你编译你的资产了吗?

rake assets:precompile
于 2013-08-10T14:52:56.107 回答
0

从评论中我猜这是您的 nginx 配置的问题,因为您可以运行 rails 控制台。

假设您使用 unicorn 和 nginx 确保 nginx 和 unicorn 套接字匹配

即在 nginx.conf 上游部分

server unix:/tmp/unicorn.mobile.sock

匹配 unicorn.rb 监听套接字

listen "/tmp/unicorn.mobile.sock"

显然,将套接字名称/路径替换为服务器的适当设置,但如果套接字不同,nginx 将永远无法与 unicorn 通信,并且您的 rails 应用程序将永远不会启动,并且 nginx 将返回 500 错误。

于 2013-08-11T03:05:07.333 回答