ruby on rails 的工程跑在nginx上

安装环境:linux

数据库:sqlite3

我ruby和rails的版本

ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Rails 4.1.1

 1.让你的项目在production上能够跑起来

rails s -e production

 可以先试一下,如果跑起来正常就不用配置,如果不正常,接这进行下面的配置

在gemfile文件中添加

gem 'yaml_db'

 接着执行

bundle

记着每次更改gemfile文件都要执行bundle命令

修改config/database。yml文件为

production:
  adapter: sqlite3
  encoding: utf8
  reconnect: false
  database: users  //你的数据库表
  pool: 5
  username: root
  password: password

 然后输入代码查看

rake secret

 会生成一段加密代码如:

e666fd082bfa95dff96edb5fe3ea7b0800172b978dc1182bc99842439d16f50b4c2f409531da93d4f09efc5c6464429484c854ff052b8c6ab2ccc4e6868af73f

 在config/secrets。yml中添加

production:
  secret_key_base: e666fd082bfa95dff96edb5fe3ea7b0800172b978dc1182bc99842439d16f50b4c2f409531da93d4f09efc5c6464429484c854ff052b8c6ab2ccc4e6868af73f

 最后执行命令让工程在production下跑起来

rails s -e production

 2.安装passager+nginx

安装passenger

sudo gem install passenger

 用passenger安装nginx

sudo passenger-install-nginx-module

 安装完成后nginx还启动不起来,需要安装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  
sudo update-rc.d nginx defaults

 3.配置nginx

以root身份打开nginx的默认安装目录/opt/nginx/conf/nginx.conf

server {
        listen       80;
        server_name  localhost;   //需要配置到外网的话更改成你网站的域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           root   /home/tlt/Projects/rails/action/public;   //你工程目录下的public
           passenger_enabled on;
          #  index  index.html index.htm index.haml;
        }

 启动nginx

sudo service nginx start

 停止

sudo service nginx stop

 重启

sudo service nginx restart

相关推荐