Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Ubuntu12環(huán)境下Thin+rails(4)+ruby(2)+nginx+mysql配置
?
1.????????前提條件:已經(jīng)正確安裝了ubuntu12并且更行了源。
2.????????安裝過(guò)程:
? 2.1 安裝ruby前的準(zhǔn)備:
1.1修改 /etc/apt/sources.list文件改為mirrors.163.com
??? 保存退出
??? 執(zhí)行命令:? sudo apt-get update 更新源
1.2 安裝curl
????????????? 執(zhí)行命令:sudoapt-get install curl
1.3 安裝rvm版本管理工具(ruby版本)
????????????? 執(zhí)行命令:curl-L https://get.rvm.io | bash -s stable
????????????? 等待安裝結(jié)束
????????????? 配置rvm環(huán)境執(zhí)行命令:source~/.rvm/scripts/rvm
????? 安裝所有rubyon rails 環(huán)境需要的包
????? 執(zhí)行命令:rvmrequirements
????? 等待…… 安裝結(jié)束(走運(yùn)的情況下)
?
??????????????????????? 2.2安裝ruby
??????????????????????????????????? ?
2.2.1 執(zhí)行命令:rvminstall ruby 將會(huì)安裝當(dāng)前對(duì)應(yīng)系統(tǒng)環(huán)境下最新版本的ruby。
2.2.2 執(zhí)行ruby –v
???? 如果系統(tǒng)里有多個(gè)ruby版本選擇自己需要的版本設(shè)置為默認(rèn)版本,例: rvmuse ruby 2.0.0 --default
2.2.3 設(shè)置結(jié)束后執(zhí)行命令:rvmrubygems current
?
??????????????????????? 2.3安裝rails
??????????????????????????????????????????????? 修改ruby的鏡像地址,改為淘寶的。這樣會(huì)快些。
??????????????????????????????????????????????? 參考:http://ruby.taobao.org 即可。
??????????????????????????????????????????????? 執(zhí)行命令:gem install rails –V
??????????????????????????????????????????????? 這個(gè)時(shí)間可能過(guò)長(zhǎng),請(qǐng)耐心等待。
??????????????????????????????????????????????? 運(yùn)氣好的話(huà),應(yīng)該可以安裝上。
??????????????????????????????????? 測(cè)試一下rubyon rails 環(huán)境。
??????????????????????????????????? 找個(gè)目錄,執(zhí)行命令:railsnew HelloRails (這里就在~路徑下)
??????????????????????????????????? 創(chuàng)建一個(gè)叫HelloRails的rails工程。說(shuō)明配置正常。
??????????????????????????????????? 進(jìn)入HelloRails目錄
??????????????????????????????????? 修改Gemfile文件,
????????? 在最后面加上如下兩行(如果文件里有就不用加了):
??????????????????????????????????????????????????????????? gem'therubyracer'
??????????????????????????????????????????????????????????? gem'execjs'
??????????????????????????????????? 保存退出:執(zhí)行bundleinstall 構(gòu)建包
3. 安裝mysql
??????????? 3.1 執(zhí)行命令:sudo apt-get? install mysql-server
??????? 等待安裝結(jié)束即可。
??????????????????????? 輸入 mysql–u root –p
??????????????????????? 再輸入密碼
??????????????????????? 看mysql是否已經(jīng)安裝成功!
?
4. 安裝nginx
??????????????????????? 4.1執(zhí)行命令:sudo apt-get install nginx
??????????????????????????????????????????????? 等待安裝結(jié)束即可。
??????????????????????????????????????????????? 輸入 sudoservie nginx restart
??????????????????????????????????????????????? 啟動(dòng)nginx
??????????????????????????????????????????????? 訪(fǎng)問(wèn)localhost 看會(huì)不會(huì)出來(lái)nginx的歡迎界面(nginx默認(rèn)端口為80).
??????????????????????????????????????????????? 如果走運(yùn),應(yīng)該可以訪(fǎng)問(wèn)了。
?
?
5、安裝thin
???????????????????????????????????
???????????????????????????????????
rails默認(rèn)的服務(wù)器不是thin,我們這里用thin來(lái)做生產(chǎn)環(huán)境的web容器。
安裝thin
?? 修改HelloRails/Gemfile
?? 在文件最后面加上gem ‘thin’
??????????????????????????????????????????????? 保存退出:執(zhí)行bundleinstall 構(gòu)建包
??????????????????????????????????? 若一切走運(yùn),就執(zhí)行:thin start 啟動(dòng)thin服務(wù)
?
?
6 配置nginx反響代理+動(dòng)靜分離(這里就以這個(gè)HelloRails工程為例)
??
6.1. 配置nginx.conf文件
??? ? 進(jìn)入nginx目錄:? cd /etc/ng? inx
??? ? 打開(kāi)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
??? ? 保存退出。(這個(gè)hellorails.com是我們一會(huì)兒要配置的這個(gè)項(xiàng)目的nginx配置文件)
?
6.2 生成并配置 hellorails.com文件。
??? ?? 執(zhí)行:cd /etc/nginx/sites-available
????? 創(chuàng)建hellorails.com文件: sudo vim hellorails.com
????? 講default文件里的內(nèi)容拷貝到hellorails.com文件里(或者直接cp個(gè)default文件改名字)
????? ??? 將server{} 代碼塊注釋掉
?????? 加入如下server代碼塊:
upstream ad{? //代理服務(wù)器配置(thin服務(wù)器)
??????? 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;
????? //這個(gè)/home/panguixiang/nginxLog目錄是自己創(chuàng)建的可以改
?
}
???????????????
?保存退出。
?
6.3 讓剛才的配置文件在nginx里起作用,執(zhí)行如下命令:
??? sudo ln –s/etc/nginx/sites-available/hellorails.com/etc/nginx/sites-enabled/hellorails.com
6.4
??????????????????????? 重啟nginx,搞定。
?????
?
?
?
?
?
另外,附上生產(chǎn)環(huán)境里的一些命令和需要配置注意的地方。
????
??????????? ? 配置工程production.rb文件
打開(kāi)~/HelloRails/config/environments/production.rb
修改如下幾行:
?config.assets.compile 修改為true
?如果有:
?config.serve_static_assets 修改為false
?假如如下行:
?config.action_dispatch.x_sendfile_header = ‘X-Accel-Redirect’
?
創(chuàng)建生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)命令:
RAILS_ENV=productionrake db:create db:schema:load
以生產(chǎn)環(huán)境方式啟動(dòng)rails:
thin方式:thinstart –e production –p 3000 (不帶-p就是默認(rèn)3000端口)
rails默認(rèn)方式:rails server –e production –p 3000
在生產(chǎn)環(huán)境里要先編譯assets里面的資源,執(zhí)行如下命令:
RAILS_ENV=productionbundle exec rake assets:precompile is the exact rake task????
或者 rake assets:precompile
可能里面還有些不正確的地方。請(qǐng)高手們貼磚,小弟改進(jìn)。
?
以下是參考文獻(xiàn):
?
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
?
轉(zhuǎn)載于:https://blog.51cto.com/3131854/1597476
總結(jié)
以上是生活随笔為你收集整理的Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle RAC Failover
- 下一篇: centos不能挂在ntfs