在本地模拟heroku(nginx + rails 3应用程序)

问题描述:

我想模拟我的本地heroku,因为我们的应用程序在heroku上。尽管我没有访问heroku中的应用程序,但我只是计划重新创建heroku在为我们的应用程序实施SSL时使用的相同环境。在本地模拟heroku(nginx + rails 3应用程序)

无论如何,我搜索了heroku,并根据我的发现和假设,他们使用nginx。我现在正在使用WEBrick,并试图在我的机器上安装nginx。也许我只是不知道关于服务器的东西垃圾等,但任何人都可以帮助我呢?我在OSX上,并计划使用nginx作为我的rails 3应用程序的服务器。

这里是我试过的东西:

  1. 手动编译安装nginx的 - 失败。当我输入'sudo nginx'时甚至没有响应。
  2. 使用端口安装nginx - 失败。键入“须藤nginx的”只显示缥缈
  3. 安装乘客在轨道3宝石“http://www.blog.bridgeutopiaweb.com/post/install-rvm-passenger-nginx-and-rails-3-on- ubuntu-lucid-lynx /“ - 失败

好吧,我真的不知道我在这里做什么。任何人都可以指出我如何着手这个方向的正确方向?我只需要用ssl而不是WEBrick在nginx上运行应用程序。谢谢!

我在我的MacBook上运行MacPorts安装,但它已经过了一段时间,因为我完全配置它。你的路线包括/opt/local/sbin?这就是默认安装ngnix的地方。

在进行本地安装时还有其他的事情需要考虑,但是这应该让你了解当前的驼峰。我没有使用SSL支持,所以我不能对此发表评论。我还推荐使用RVM来运行多个本地Rub(并通过gem,Rails)版本,而不用担心Snow Leopard附带的默认版本。

一个大问题是,为了让nginx和乘客使用RVM,install process实际上想重新编译nginx,并且它促使我建立一个新的根文件夹。我最终以/opt/local/nginx去,因为由于MacPorts文件夹结构,没有一个*目录(如/opt/local),我可以指定它来替换现有的安装。

所以,最后,这个结束了我一个全新的安装Nginx的,离开了原来的MacPorts一个孤儿。你可能仍然想要进行MacPorts的初始安装,只是为了自己测试nginx。在RVM

一个建议:不要使用sudo来安装宝石,因为这使他们在本地文件夹断你的主目录中。请记住,您仍然需要运行rvm 1.9.2 --default以使Ruby版本成为当前shell生命周期之后的默认版本。如果您使用rvm use 1.9.2进行切换,它不会粘住。

无的,涉及到红宝石的客机将从您的RVM文件夹中使用,请参见上面的链接进行了具体说明。对我而言,通过rvm 1.9.2 --passenger在我的nginx.conf中创建的默认passenger_ruby条目实际上是不正确的,因此请确保您检查该页面上的故障排除详细信息。

的说明假设你想使用Ruby企业版(也就是在命令“稀土”),但我只是跑正式发布1.9.2。

最后,我也遇到了libiconv问题。RVM有fix for that too

+0

它看起来像我安装了端口,尝试哪些nginx和它显示:/ opt/local/sbin/nginx然后我做了sudo nginx,它说[emerg]:bind()为0.0.0.0:80失败48:地址已经在使用) – corroded 2010-09-29 01:21:43

+0

检查你的活动管理器,看看是否已经有nginx进程在运行。或者,您是否拥有Snow Leopard附带的默认Apache?查看系统偏好设置 - >共享 - >网络共享。后来,我也遇到了日志目录权限问题。不要将它调到777(755很好),或者你得到一个关于访问PID文件(你的nginx.conf中保存了一个dir)的无关声音错误信息。 – 2010-09-29 02:18:09