如何解决Rails环境部署问题?
| 我正在尝试在这里部署我的第一个Rails应用程序,并且自昨晚以来一直处于困境。我遇到一些无法解释的怪异行为。 我正在运行Rails,Apache,Phusion Passenger,目前正在运行SQLite3。(我将很快将其移至MySQL。)目前,该主机托管在运行Ubuntu Server 11.04的EC2切片中,该切片太小( Natty)。 在浏览器中访问EC2切片的地址时,会收到默认的Rails 500通知。不过,这就是奇怪的地方。当我尾巴/log/production.log
时,我看到以下错误:
ActionView::Template::Error (SQLite3::SQLException: no such table: offers: SELECT \"offers\".* FROM \"offers\" WHERE (code = \'\') ORDER BY created_at desc LIMIT 25 OFFSET 0):
因此,我在SQLite3中手动打开了开发数据库,并在那里看到了该表。但是,生产数据库没有该表。
好的,所以在生产日志中记录的生产数据库出现错误。该应用程序必须在生产模式下运行,对吗?
那就是丢给我的东西。首先,它在我的开发计算机上以开发模式运行,并且在部署它时我没有更改任何文件。我也没有使用任何花哨的部署工具来部署它(可能在我不知情的情况下进行了某些更改)-我只是做了一个简单的“ 2”。
此外,我在httdp.conf VirtualHost配置中添加了以下内容:
RailsEnv development
另外,当我运行Rails控制台时,可以获得以下信息:
irb(main):002:0> Rails.env
=> \"development\"
因此,应用程序确实应该在开发模式下运行,对吗?实际上,似乎(部分地)认为是吧?
我真的不确定这里发生了什么,并且我真的很感谢一些专家的建议。
感谢大家。
编辑-一些服务器稍后重新启动,现在当我尝试在浏览器中查看它时,它只是挂起了。另外,当我尝试重新启动Apache(因此服务器重新启动),相关问题或完全不同的问题时,Apache似乎挂起了?
解决方法
好吧,这对我来说不是100%令人满意的答案,但是我做了两件事,而且我认为我已经做好了。
首先,我重新安装了乘客Apache模块。可能有必要也可能没有。
不过,这是一件大事:在将代码行添加到httpd.conf并将Rails Environment传递给Passenger之后,我相信Apache错误地重启了。 (相反,我相信我一生都在错误地重新启动Apache!)
我试图以此方式重新启动Apache:
sudo /etc/init.d/apache2 restart
这一直对我有用(在编写PHP时),但是在这里根本不起作用。 Apache只会在重新启动时停止。
但是,这很好用:
sudo apachectl restart
我将不得不问服务器故障,两者之间的显着区别是什么。
我希望这可以帮助某人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。