首页 > 代码库 > Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置

                                 Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql配置

 

1.        前提条件:已经正确安装了ubuntu12并且更行了源。

2.        安装过程:

  2.1 安装ruby前的准备:

  1. 1.1修改 /etc/apt/sources.list文件改为mirrors.163.com

    保存退出

    执行命令:  sudo apt-get update 更新源

  1. 1.2 安装curl

              执行命令:sudoapt-get install curl

  1. 1.3 安装rvm版本管理工具(ruby版本)

              执行命令:curl-L https://get.rvm.io | bash -s stable

              等待安装结束

              配置rvm环境执行命令:source~/.rvm/scripts/rvm

      安装所有rubyon rails 环境需要的包

      执行命令:rvmrequirements

      等待…… 安装结束(走运的情况下)

 

                        2.2安装ruby

                                     

2.2.1 执行命令:rvminstall ruby 将会安装当前对应系统环境下最新版本的ruby

2.2.2 执行ruby –v

     如果系统里有多个ruby版本选择自己需要的版本设置为默认版本,例: rvmuse ruby 2.0.0 --default

2.2.3 设置结束后执行命令:rvmrubygems current

 

                        2.3安装rails

                                                修改ruby的镜像地址,改为淘宝的。这样会快些。

                                                参考:http://ruby.taobao.org 即可。

                                                执行命令:gem install rails –V

                                                这个时间可能过长,请耐心等待。

                                                运气好的话,应该可以安装上。

                                    测试一下rubyon rails 环境。

                                    找个目录,执行命令:railsnew HelloRails (这里就在~路径下)

                                    创建一个叫HelloRailsrails工程。说明配置正常。

                                    进入HelloRails目录

                                    修改Gemfile文件,

          在最后面加上如下两行(如果文件里有就不用加了)

                                                            gem‘therubyracer‘

                                                            gem‘execjs‘

                                    保存退出:执行bundleinstall 构建包

3. 安装mysql

            3.1 执行命令:sudo apt-get  install mysql-server

        等待安装结束即可。

                        输入 mysql–u root –p

                        再输入密码

                        mysql是否已经安装成功!

 

4. 安装nginx

                        4.1执行命令:sudo apt-get install nginx

                                                等待安装结束即可。

                                                输入 sudoservie nginx restart

                                                启动nginx

                                                访问localhost 看会不会出来nginx的欢迎界面(nginx默认端口为80.

                                                如果走运,应该可以访问了。

 

 

5安装thin

                                   

                                   

rails默认的服务器不是thin,我们这里用thin来做生产环境的web容器。

安装thin

   修改HelloRails/Gemfile

   在文件最后面加上gem ‘thin’

                                                保存退出:执行bundleinstall 构建包

                                    若一切走运,就执行:thin start 启动thin服务



 

 

6 配置nginx反响代理+动静分离(这里就以这个HelloRails工程为例)

  

6.1. 配置nginx.conf文件

      进入nginx目录:  cd /etc/ng  inx

      打开nginx.conf文件:  sudo vim nginx.conf

     找到 include /etc/nginx/conf.d/*.conf;

                           

                            include/etc/nginx/sites-enabled/*;

     注释掉这两行,添加一行新的include

                include/etc/nginx/sites-available/hellorails.com

      保存退出。(这个hellorails.com是我们一会儿要配置的这个项目的nginx配置文件)

 

6.2 生成并配置 hellorails.com文件。

       执行:cd /etc/nginx/sites-available

      创建hellorails.com文件: sudo vim hellorails.com

      default文件里的内容拷贝到hellorails.com文件里(或者直接cpdefault文件改名字)

          server{} 代码块注释掉

       加入如下server代码块:

upstream ad{  //代理服务器配置(thin服务器)

        server 127.0.0.1:3000;

}

server {

        listen 80;

        server_name 10.0.2.15;

        root ~/ HelloRails/public;

        try_files $uri @ad;

        location ~ ^/(assets)/ {

                root ~/ HelloRails/public;

                                          gzip_static on;

                expires max;

                add_header Cache-Controlpublic;

        }

        location ~*\.(jpeg|jpg|png|gif|bmp|ico|css|js|swf)$ {

                root ~/ HelloRails/public;

        }

        location @ad {

                proxy_set_header  X-Real-IP  $remote_addr;

               proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 

                proxy_set_header  Host  $http_host;

                proxy_redirect  off;

                proxy_pass  http://ad;

        }

        access_log/home/panguixiang/nginxLog/access.log; 

        error_log/home/panguixiang/nginxLog/error.log;

      //这个/home/panguixiang/nginxLog目录是自己创建的可以改

 

}

               

 保存退出。

 

6.3 让刚才的配置文件在nginx里起作用,执行如下命令:

    sudo ln –s/etc/nginx/sites-available/hellorails.com/etc/nginx/sites-enabled/hellorails.com

6.4

                        重启nginx,搞定。

     

 

 

 

 

 

另外,附上生产环境里的一些命令和需要配置注意的地方。

    

              配置工程production.rb文件

打开/HelloRails/config/environments/production.rb

修改如下几行:

 config.assets.compile 修改为true

 如果有:

 config.serve_static_assets 修改为false

 假如如下行:

 config.action_dispatch.x_sendfile_header = ‘X-Accel-Redirect’

 

创建生产环境的数据库命令:

RAILS_ENV=productionrake db:create db:schema:load

以生产环境方式启动rails

thin方式:thinstart –e production –p 3000 (不带-p就是默认3000端口)

rails默认方式:rails server –e production –p 3000

在生产环境里要先编译assets里面的资源,执行如下命令:

RAILS_ENV=productionbundle exec rake assets:precompile is the exact rake task    

或者 rake assets:precompile


可能里面还有些不正确的地方。请高手们贴砖,小弟改进。

 


以下是参考文献:

 

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-ubuntu-12-04-lts-precise-pangolin-with-rvm 安装ruby on rails

https://rvm.io/rvm/install 安装rvm

http://www.cnblogs.com/zj1111184556/archive/2013/09/13/3318807.html 卸载rvm

http://www.cyberciti.biz/faq/uninstall-mysql-ubuntu-linux-command/ Ubuntu卸载 mysql-server

 


本文出自 “重新来学JAVA” 博客,请务必保留此出处http://3131854.blog.51cto.com/3121854/1597476

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置