天天看點

ruby 配置安裝

配置 Ubuntu Server 系統

如果你是國内伺服器,推薦修改網易的源

  1. 輸入

    sudo vi /etc/apt/sources.list

    将裡面的内容替換成:

deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse(不換也行,國内的速度有時不一定比國外快)

然後更新一下:

$ sudo apt-get update

安裝必要的三方庫

$ sudo apt-get install -y wget vim build-essential openssl libreadline6 libreadline6-dev libmysqlclient-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev libcurl4-openssl-dev autoconf automake libtool imagemagick libmagickwand-dev libpcre3-dev nodejs

安裝 Ruby, Rails 及相關

安裝 RVM

$ \curl -L https://get.rvm.io | bash -s stable

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >>~/.bashrc

$ source ~/.bashrc

$ rvm -v

安裝 Ruby

如果你是國内伺服器,推薦将 RVM 的安裝源替換成 Taobao 的鏡像伺服器,這樣安裝能更快!

$ sed -i -e 's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g' ~/.rvm/config/db

用 RVM 安裝 Ruby:

$ rvm pkg install readline openssl

$ rvm install 2.0.0

$ rvm use 2.0.0 --default

$ ruby -v

ruby 2.0.0p247

國内伺服器推薦替換 RubyGems 的到淘寶鏡像:

$ gem sources --remove https://rubygems.org/

$ gem sources -a http://ruby.taobao.org/

$ gem sources -l

*** CURRENT SOURCES *** http://ruby.taobao.org

安裝 Rails

$ gem install rails

$ rails -v

Rails 4.0.0

安裝 MySQL 或其他資料庫

當然,如果你的項目是用的其他資料庫,請自己解決

$ sudo apt-get install mysql-server

跟着提示安裝,此處涉及東西在本教程之外,請自行 Google 相關教程解決。

部署你的網站

接下來你可以通過 Git 或其他方式将你項目的源代碼送出到伺服器上面,建議放到使用者的

~/www

下面。

為了友善教程,我們假設,使用者是 jason (擁有 sudo 權限), 項目名 gitlab 後面遇到類似的地方請更具自己的情況修改

$ cd ~/

$ pwd/home/jason/

$ mkdir www

$ cd www

$ git clone [email protected]:gitlab.git $ cd gitlab $ bundle install

修改你的資料庫配置,建立資料庫,合并 migration ...這些是 Rails 開發的基礎,這裡就不細說了,重點是最後你能讓你的項目能用

rails s

跑起來!

$ rails s -e production

安裝 Passenger 用于部署 Rails 應用

$ gem install passenger $ passenger -vPhusion Passenger version 4.0.10

由于 Passenger 需要重新編譯 Nginx,如果你之前有安裝 Nginx 需要解除安裝掉!

nginx -v

,有的話解除安裝 

$ sudo apt-get remove nginx-common nginx-full nginx

用 Passenger 安裝 Nginx

$ sudo passenger-install-nginx-module

接下來會出現提示,選擇 Yes: download, compile and install Nginx for me. (recommended) ,對于後面的提示一直選預設哪項,敲回車。

最後看到

Nginx with Passenger support was successfully installed.

表示你人品很好 Nginx 安裝成功!否則請看 Passenger 官方安裝文檔 自行解決……

安裝 Nginx init script

接下來你需要安裝 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

配置 Nginx 開機自啟動

$ sudo update-rc.d nginx defaults

配置 Nginx 與網站

打開 Nginx 的

nginx.conf

$ sudo vim /opt/nginx/conf/nginx.conf

PS: 如果你不是 Passenger 安裝的 Nginx,這個配置檔案還有可能在

/usr/local/nginx/

/etc/nginx

下面

請參考下面的例子修改:

user jason ; # 修改成你的系統帳号名,不然項目目錄 /home/jason/www 這裡沒有權限 worker_processes 8 ; # 修改成和你 CPU 核數一樣 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" ;   ## ------------ 重點修改内容 --------   server { # 此處用于防止其他的域名綁定到你的網站上面   listen 80 default ; return 403 ;   }   server {   listen 80 ; server_name you.host.name ; # 請替換成你網站的域名   rails_env production ; root /home/jason/www/gitlab/public ;   passenger_enabled on ; location ~ ^(/assets) {   access_log off ; # 設定 assets 下面的浏覽器緩存時間為最大值(由于 Rails Assets Pipline 的檔案名是根據檔案修改産生的 MD5 digest 檔案名,是以此處可以放心開啟)   expires max ; } }   ## --------------------------------- }

重新開機 Nginx

$ sudo /etc/init.d/nginx start

部署完成!可以嘗試通路你的域名。

ror