新聞中心
前言

- 本教程只適合 ubuntu server 用于部署項(xiàng)目到線上,建議使用同樣的 Ubuntu 版本,以免遇到一些版本不同帶來(lái)的問(wèn)題。
- 本教程適合新手初次部署 Rails 應(yīng)用;
本文測(cè)試通過(guò)環(huán)境
- Ubuntu 14.04 Server,
配置 Ubuntu Server 系統(tǒng)
如果你是國(guó)內(nèi)服務(wù)器,推薦修改網(wǎng)易的源
http://mirrors.163.com/.help/ubuntu.html
然后更新一下:
$ sudo apt-get update $ sudo apt-get upgrade -y
安裝 Ruby, Rails 及相關(guān)
安裝 RVM
$ curl -L https://get.rvm.io | bash
這個(gè)時(shí)候需要 logout 然后重新 login,login 之后,檢查 rvm 環(huán)境是否已經(jīng)正確載入
rvm info
安裝 Ruby
用 RVM 安裝 Ruby:
$ rvm install 2.1.1 $ rvm use 2.1.1 --default
國(guó)內(nèi)服務(wù)器推薦替換 RubyGems 的到淘寶鏡像:
$ gem sources --remove https://rubygems.org/ $ gem sources -a https://ruby.taobao.org/ $ gem sources -l *** CURRENT SOURCES *** https://ruby.taobao.org # 請(qǐng)確保只有 ruby.taobao.org
安裝 Rails
$ gem install rails $ rails -v
安裝 MySQL 或其他數(shù)據(jù)庫(kù)
當(dāng)然,如果你的項(xiàng)目是用的其他數(shù)據(jù)庫(kù),請(qǐng)自己解決
$ sudo apt-get install mysql-server
跟著提示安裝,此處涉及東西在本教程之外,請(qǐng)自行 Google 相關(guān)教程解決。
部署你的網(wǎng)站
接下來(lái)你可以通過(guò) Git 或其他方式將你項(xiàng)目的源代碼提交到服務(wù)器上面,建議放到用戶的 ~/www 下面。
為了方便教程,我們假設(shè),用戶是 jason (擁有 sudo 權(quán)限), 項(xiàng)目名 gitlab 后面遇到類(lèi)似的地方請(qǐng)更具自己的情況修改
$ cd ~/ $ pwd /home/jason/ $ mkdir www $ cd www $ git clone git@you.host:gitlab.git $ cd gitlab $ bundle install
修改你的數(shù)據(jù)庫(kù)配置,創(chuàng)建數(shù)據(jù)庫(kù),合并 migration ...這些是 Rails 開(kāi)發(fā)的基礎(chǔ),這里就不細(xì)說(shuō)了,重點(diǎn)是最后你能讓你的項(xiàng)目能用 rails s 跑起來(lái)!
$ rails s -e production
安裝 Passenger 用于部署 Rails 應(yīng)用
$ gem install passenger $ passenger -v Phusion 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
接下來(lái)會(huì)出現(xiàn)提示,選擇 Yes: download, compile and install Nginx for me. (recommended) ,對(duì)于后面的提示一直選默認(rèn)哪項(xiàng),敲回車(chē)。
最后看到
Nginx with Passenger support was successfully installed.
表示你人品很好 Nginx 安裝成功!否則請(qǐng)看 Passenger 官方安裝文檔 自行解決……
如果在編譯過(guò)程中,出現(xiàn)內(nèi)存不足的情況下,可以添加虛擬內(nèi)存來(lái)處理,詳情見(jiàn):https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04 。注意添加的虛擬內(nèi)存建議是1倍或2倍于物理內(nèi)存。
安裝 Nginx init script
接下來(lái)你需要安裝 Nginx 的啟動(dòng)腳本,以及配置開(kāi)機(jī)自動(dòng)啟動(dòng)
$ 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 開(kāi)機(jī)自啟動(dòng)
$ sudo update-rc.d nginx defaults
配置 Nginx 與網(wǎng)站
打開(kāi) Nginx 的 nginx.conf
$ sudo vim /opt/nginx/conf/nginx.conf
PS: 如果你不是 Passenger 安裝的 Nginx,這個(gè)配置文件還有可能在
/usr/local/nginx/或/etc/nginx下面
請(qǐng)參考下面的例子修改:
user jason; # 修改成你的系統(tǒng)帳號(hào)名,不然項(xiàng)目目錄 /home/jason/www 這里沒(méi)有權(quán)限
worker_processes 8; # 修改成和你 CPU 核數(shù)一樣
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";
## ------------ 重點(diǎn)修改內(nèi)容 --------
server {
# 此處用于防止其他的域名綁定到你的網(wǎng)站上面
listen 80 default;
return 403;
}
server {
listen 80;
server_name you.host.name; # 請(qǐng)?zhí)鎿Q成你網(wǎng)站的域名
rails_env production;
root /home/jason/www/gitlab/public;
passenger_enabled on;
location ~ ^(/assets) {
access_log off;
# 設(shè)置 assets 下面的瀏覽器緩存時(shí)間為最大值(由于 Rails Assets Pipline 的文件名是根據(jù)文件修改產(chǎn)生的 MD5 digest 文件名,所以此處可以放心開(kāi)啟)
expires max;
}
}
## ---------------------------------
}
重啟 Nginx
$ sudo /etc/init.d/nginx start
部署完成!可以嘗試訪問(wèn)你的域名。
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-11/148346.htm
網(wǎng)站名稱:在Ubuntu14.04Server上安裝部署RubyonRails應(yīng)用
路徑分享:http://www.dlmjj.cn/article/dghhgsh.html


咨詢
建站咨詢
