部署 用 Mac 开发 RoR 应用程序,然后怎么部署到 Linux 服务器上去 (不采用 Heroku)

dothide · 2013年12月18日 · 最后由 shiny 回复于 2013年12月19日 · 3677 次阅读

使用 Mac OS X 开发 RoR 应用程序,然后部署到 Linux 服务器上需要做些什么事情,难道都是用 scp 吗?如果本地修改了程序再放上去还是用 scp?

我是菜鸟,想请教一下大家,谢谢拉~

#1 楼 @tomlive 恩 谢谢 那是不是先要 push 到 GitHub 上后,然后再从服务器上 git clone 么?

#2 楼 @dothide 是啊,所以代码很危险,所以会用更私有的 git server,或者买 github 的服务。

我一般在服务器弄一个 git 仓库。。。毕竟公司项目不太好放在其他地方

用 gitosis-admin 做一个简单的管理 个人就在自己电脑上瞎搞,搞完了提交到服务器,我在弄个测试环境,让他们继续瞎搞,没问题了再更新正式环境。。。

首先,用 git 来管理和传输代码,私有源只要在 server 上新建一个目录 git init --bare 就行了。

然后,要了解如何手动更新并部署 Rails 项目,比如 Nginx + Unicorn

最后,用 mina(https://github.com/nadarei/mina)将部署过程自动化。

#5 楼 @Rei 谢谢拉 那使用了 mina 之后是不是就不需要再配置 capistrano 了呢?

#3 楼 @liwei78 恩恩 怪不得 GitHub 有个收费的版本 现在理解了 呵呵

#6 楼 @dothide 我之前用 capistrano,觉得配置太复杂了,看了 mina 原理之后觉得这个更好,不过还没实际用过。

#4 楼 @badboy 恩 自己搭 git 仓库的话会不会太麻烦呢?关键是我还不太了解用 git 做更新和提交的方法 我所了解的步骤是: 1.git add . 2.git commit -m '...' 3.git push(但这一步我只会提交到 GitHub,不知道该怎么提交到自己的 Git Server 上)

但这一步我只会提交到 GitHub,不知道该怎么提交到自己的 Git Server 上)

git remote add origin xxxxx

#8 楼 @Rei 呵呵 我现在就去试试

#10 楼 @loveky 噢 明白拉 谢谢哈~ 如果是这样的话 我在生产服务器上做远程部署的话又该如何做自动化呢? #12 楼 @Rei 嘿嘿 太感谢了 正在这个找相关资料

#13 楼 @dothide 部署的部分 你可以先去参考一下 capistrano 或 mina 的原理,看看这些工具是怎么实施部署的,再根据你的具体需要调整。

#5 楼 @Rei 另外我还想请教一下,我现在在 Centos 上搭好了 nginx+unicorn,但生成的网站始终有 application.js 和 application.css 找不到的问题,我已经找了相关资料,了解了 assets pipeline 的有关知识,并且在 public 目录下生成了 MD5 名称的文件,但发现网站并没有引用那些文件。但我如果直接敲 rails s -e production,访问 3000 端口就没问题,好奇怪,我另开了个帖子: http://ruby-china.org/topics/16245

#14 楼 @loveky 好滴 我马上去看看

可以在本机或虚拟机上折腾好,再原样拷到正式服务器上。 capistrano,mina 是你嫌手工麻烦之后再用的。

用 bitbucket 的私有库就好了啊

#5 楼 @Rei Rei 哥我不敢相信你回答这样的帖子

#20 楼 @Rei 这种属于典型的伸手党。部署这么常见的问题,已有的帖子千千万万

#21 楼 @Yujing_Z 从顶楼信息可以看出楼主已经做过思考(scp),但是又不了解现在在用的工具(git),所以我把步骤和链接给出来,但不列出代码,这样楼主可以有方向去找资料了。

第一次听说 mima,之前 python 里用的 fabric。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号