在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用

安装 Ruby, Rails 及相关
安装 RVM

$ curl -L https://get.rvm.io | bash

这个时候需要 logout 然后重新 login,
login 之后,检查 rvm 环境是否已经正确载入
rvm info

安装 Ruby

用 RVM 安装 Ruby:
$ rvm install 2.1.1$ rvm use 2.1.1 --default
国内服务器推荐替换 RubyGems 的到淘宝镜像:

$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***https://ruby.taobao.org # 请确保只有 ruby.taobao.org```

######安装 Rails
`$ gem install rails$ rails -v
$ rails -v`

可能需要nodejs环境
http://segmentfault.com/q/1010000000476530


######安装 MySQL 或其他数据库
当然,如果你的项目是用的其他数据库,请自己解决
`$ sudo apt-get install mysql-server`
跟着提示安装,此处涉及东西在本教程之外,请自行 Google 相关教程解决。

######部署你的网站
接下来你可以通过 Git 或其他方式将你项目的源代码提交到服务器上面,建议放到用户的 ~/www
 下面。
为了方便教程,我们假设,用户是 jason (拥有 sudo 权限), 项目名 gitlab 后面遇到类似的地方请更具自己的情况修改
`$ cd ~/$ pwd/home/jason/
$ mkdir www
$ cd www
$ git clone [email protected]:gitlab.git$ cd gitlab
$ bundle install`
修改你的数据库配置,创建数据库,合并 migration ...这些是 Rails 开发的基础,这里就不细说了,重点是最后你能让你的项目能用 rails s
 跑起来!

######安装 Passenger 用于部署 Rails 应用
`$ gem install passenger$ passenger -vPhusion Passenger version 4.0.10`
由于 Passenger 需要重新编译 Nginx,如果你之前有安装 Nginx 需要卸载掉!nginx -v,有的话卸载 
`$ sudo apt-get remove nginx-common nginx-full nginx`

用 Passenger 安装 Nginx
`$ rvmsudo passenger-install-nginx-module`
接下来会出现提示,选择 **Yes: download, compile and install Nginx for me. (recommended)** ,对于后面的提示一直选默认哪项,敲回车。
最后看到
`Nginx with Passenger support was successfully installed.`

表示你人品很好 Nginx 安装成功!否则请看 [Passenger 官方安装文档](http://www.modrails.com/install.html) 自行解决……
如果在编译过程中,出现内存不足的情况下(对应问题:[http://ruby-china.org/topics/16224](http://ruby-china.org/topics/16224)),可以添加虚拟内存来处理,详情见:[https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04](https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04) 。注意添加的虚拟内存建议是1倍或2倍于物理内存。

######安装 Nginx init script
接下来你需要安装 Nginx 的启动脚本,以及配置开机自动启动
`$ cd ~/
$ git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
$ sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
$ sudo chmod +x /etc/init.d/nginx`
配置 Nginx 开机自启动
`$ sudo update-rc.d nginx defaults`
######配置 Nginx 与网站
打开 Nginx 的 nginx.conf

`$ sudo vim /opt/nginx/conf/nginx.conf`
PS: 如果你不是 Passenger 安装的 Nginx,这个配置文件还有可能在 /usr/local/nginx/
 或 /etc/nginx
 下面
请参考下面的例子修改:


user jason; # 修改成你的系统帐号名,不然项目目录 /home/jason/www 这里没有权限worker_processes 8; # 修改成和你 CPU 核数一样pid /var/run/nginx.pid;http { include mime.types; default_type application/octet-stream; client_max_body_size 50m; sendfile on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; ## ------------ 重点修改内容 -------- server { # 此处用于防止其他的域名绑定到你的网站上面 listen 80 default; return 403; } server { listen 80; server_name you.host.name; # 请替换成你网站的域名 rails_env production; root /home/jason/www/gitlab/public; passenger_enabled on; location ~ ^(/assets) { access_log off; # 设置 assets 下面的浏览器缓存时间为最大值(由于 Rails Assets Pipline 的文件名是根据文件修改产生的 MD5 digest 文件名,所以此处可以放心开启) expires max; } } ## ---------------------------------}


重启 Nginx
`$ sudo /etc/init.d/nginx start`
部署完成!可以尝试访问你的域名。


http://stackoverflow.com/questions/18235293/ruby-on-rails-unable-to-convert-x89-from-ascii-8bit-to-utf-8-for-xxx-xxxx-x

你可能感兴趣的:(在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用)