Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql配置
1. 前提条件:已经正确安装了ubuntu12并且更行了源。
2. 安装过程:
2.1 安装ruby前的准备: 保存退出 执行命令: sudo apt-get update 更新源 执行命令:sudoapt-get install curl 等待安装结束 配置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 (这里就在~路径下)
创建一个叫HelloRails的rails工程。说明配置正常。
进入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文件里(或者直接cp个default文件改名字) 将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
可能里面还有些不正确的地方。请高手们贴砖,小弟改进。
|