无法部署Rails应用程序(Linode,Passenger)

时间:2012-07-11 22:51:20

标签: ruby-on-rails passenger linode

我是一个全新的Rails用户,我正在关注本教程 - http://ruby.railstutorial.org/chapters/a-demo-app#top。在本地服务器上访问演示应用程序(来自第2章)没有问题。但是在部署到我的Linode服务器时出现问题。这就是我所做的:

  1. 将本地应用推送到BitBucket
  2. 将Linode上的回购克隆为:/ srv / www / preziki / first_app
  3. 捆绑安装
  4. rake db:migrate
  5. 为preziki更新VirtualHost:

    ServerAdmin oleg@preziki.com ServerName preziki.com ServerAlias www.preziki.com DocumentRoot / srv / www / preziki / first_app / public ErrorLog /srv/www/preziki/logs/error.log CustomLog /srv/www/preziki/logs/access.log合并

  6. a2ensite preziki

  7. 重启apache
  8. 重新加载apache
  9. 如果我访问www.preziki.com(或176.58.104.181),我会看到默认的Rails“Welcome on board”页面。如果单击“关于您的应用程序环境”链接,则会出现“抱歉但出错”错误。如果我去www.preziki.com/users,(就像我可以与localhost / users一样),我会得到“抱歉但出了问题”的错误。

    如果我将VirtualHost指向我有“Hello world!”的目录。 index.html文件,然后preziki.com显示它没有问题。

    我做错了什么?

    谢谢。

2 个答案:

答案 0 :(得分:1)

首先你可以看到“默认Rails”环境,意味着检查你的web服务器(apache)是否正常工作。因为它是一个静态请求。

当您想要进入应用程序环境时,第二件事就是它们是一个问题意味着您的应用程序未正确部署。

你需要检查几件事。

1. Give the application directory all permission.
2. bundle install properly
3. Set RailsENV in virtual host
4. rake db:migrate properly.
5. Check your log file what problem it is showing.



<VirtualHost *:80>
      ServerName localhost
      DocumentRoot /home/user/project/trunk/public
      PassengerEnabled on
      RailsEnv development
      <Directory /home/user/project/trunk/public>
      </Directory>
</VirtualHost>

答案 1 :(得分:0)

听起来你几乎就在那里。我的猜测是该应用程序在连接数据库时出现问题。但要亲自了解问题所在,请查看生产日志文件:

/srv/www/preziki/first_app/log/production.log

这通常会告诉你需要知道的一切。您可以执行的另一项调试是在生产模式下使用服务器上的控制台:

bundle exec rails console production