首頁 >後端開發 >php教程 >Ubuntu14.04下Ruby on rails,Passenger與Nginx的環境搭建

Ubuntu14.04下Ruby on rails,Passenger與Nginx的環境搭建

WBOY
WBOY原創
2016-08-08 09:32:161083瀏覽

一直聽說rubyonrails的開發效率很高,所以前陣子嘗試了的環境搭建過程。我用的是ubuntu14.04LTS,看了下網上的各種帖子以及一些教程,貌似都不建議在 rails開發,一般都是linux 前期工作前期工作前期工作

rails
  1. 環境前,有一些必要的包需要安裝,以免後面的安裝遇到各種缺少庫的問題(參見http://ihower.tw/rails3/

)。執行以下指令:

$sudo apt-get install build-essential bison openssl libreadline6libreadline6-dev curl build-essential bison openssl libreadline6libreadline6-dev curl build-essential bison openssl libreadline6libreadline6-dev curl build-essential git-13 libsqlite3-dev sqlite3 libxml2-devlibxslt-dev autoconf libc6-dev

unableto locate的問題,一般可以用更新來解決:$sudo

update 也無法執行,出現」

isthe internet authenticated?”之類的提示,則很可能是網絡有限制。我在用旅館的網絡時就發現了這個問題。。。 RVM安裝

    一個方便的多版本
  1. ruby環境的管理和切換,這可以給你學習

rvm進行管理,但我個人比較傾向於使用 安裝rvm需要用到curlcurl 官網指示安裝,很簡單,執行兩個指令即可:$ gpg --keyserver hkp://keys.gnupg.net--recv-keys D39DC0E3 https /get.rvm.io | bash -sstable

安裝完成後,運行:

$source ~/.rvm/scripts/rvm這樣便算完成了rvm的安裝。可透過運行$ rvm-v來檢查rvm

是否安裝成功。

rvm

運行$rvm install 2.0.0來安裝版本這個可依自己的需求安裝對應的版本。若出現Errorrunning ‘requirements_debian…’的錯誤,可先運行$rvm autolibs disable然後再安裝。若如步驟1中已把各種包都安裝了則這裡應該能成功安裝,否則將會出現missingxxxmissingxxx

  1. missingxxx

    missingxxx

的錯誤。

Ruby版本的設定 ruby,所以若同一桌上型電腦上安裝的多個版本的ruby,則需要指定使用哪個版本的rubyrubyruby

ruby。可用$rvm 2.0.0 --default指令來指定預設的版本(這裡是2.0.0版)。 注意,對於ubuntu gnome-terminal,所以會出現 RVMis not a function的錯誤,需開啟terminalEdit->profile-Tandence Command,選取Runcommand as a loginshell。關閉terminal再重新開啟一個terminal

  1. 詳情請見:

    https://rvm.io/integration/gnome-terminal

🜎ra🎟🜎鑑於國內的網路環境,在安裝rails前,可將RVM鏡像伺服器http://ruby .taobao.org/,否則會長時間沒有回應而無法安裝:$

$gemsources -a https://ruby.taobao.org/ s -l

***CURRENT SOURCES ***

https://ruby.taobao.orghttps://ruby.taobao.org

設定相應的ruby/rails


gemset。如我們想用

2.0.0版本的ruby18ruby1. rails進行組合,則可為其設定一個gemset環境。具體操作如下:$rvm use 2.0.0 (使用2.0.0版本的ruby版本的

$rvm gemset create rails418 (創建名為rails418gemset $gem install rails [--version=' 4.1.8']

(安裝rails,後面的version,後面的version rails。 convert “/x89” from ASCII to UTF8之類的錯誤,可運行$gem install rdoc rdoc --all --overwrite來解決)$rvm use 2.0.0@rails418 –default🜎

rails4.1.8

組合的gemset 可以用$rvm gemset list來查看自己設了哪些gemset環境,同樣的,

$rvm list

可查看安裝了哪些版本的ruby我們可能會問,如果我有多個rails項目,每個項目需要不同的環境,那麼每次切換項目gemset環境?事實上,我們可以在各專案的根目錄建個.rvmrc

文件,在其中寫入例如rvmuse 2.0.0@rails418的指令來指定所使用的gemset環境。這樣,當我們每次進入這個目錄是就會切換為此環境。 Rails的部署 的部署方式。 passenger

是一個
  1. webapp server

    nginx

是一個高效能的HTTP可用於部署的軟體其實有若干,大家可以自行選擇。 先安裝passenger install passenger之後使用rvmsudo指令帶 nginx

$ rvmsudopassenger-install-nginx-module這樣nginx ,修改

/opt/ nginx/conf/nginx.conf檔案來指定根目錄為rails程式。之後啟動

nginx:

$ sudo /opt/nginx/sbin/nginx

開發的項目了。

使用這種方法安裝帶passengernginxngin Nginx不像apachenginx則只能配置好需要的模組後再進行編譯安裝,一旦安裝完成將無法再新增模組。所以要自己分開安裝的,需要上網查對於分開安裝如何設定nginx使其能支援passenger,這裡給定passenger https://www.phusionpassenger.com/documentation/UsersguideNginx.html至於如何將nginxnginx www.nginx.cn/204.html上的一段腳本:#!/bin/sh DESC="nginxdaemon" NAME=nginxDAEMON=/opt/nginx/sbin/$NAMECONFIGFILE=/opt/op logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME

set-e

[-x "$DAEMON" ] || exit 0

do_start(){

$DAEMON -c $CONFIGFILE || echo-n "nginx already running"

}

do_stop(){

kill -INT `cat $PIDFILE` ||echo -n "nginx not running"

}

do_reload(){

kill -HUP `cat $PIDFILE` ||echo -n "nginx can't reload"

}

case"$1" in

start)

echo -n "Starting $DESC:$NAME"

do_start

echo "."

;;

stop)

echo -n "Stopping $DESC:$NAME"

do_stop

echo "."

;;

reload|graceful)

echo -n "Reloading $DESCconfiguration..."

do_reload

echo "."

;;

restart)

echo -n "Restarting$DESC: $NAME"

do_stop

do_start

echo "."

;;

*)

echo "Usage: $SCRIPTNAME{start|stop|reload|restart}" >&2

exit 3

;;

esac

exit0

將這段腳本以新建文件

將這段腳本以新建文件

sudoservice nginx start/stop/restart

來操作

nginx

服務了。

下面給出如何用rvm gemset的指令: 卸載一個ruby

版本:$rvm remove 2.0.0清空一個gemset的所用 gem

$rvm gemset empty 2.0.0@rails418刪除一個gemset gemset delete rails418

以上就介紹了Ubuntu14.04下Ruby on rails,Passenger與Nginx的環境搭建,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn