0

0

Ubuntu14.04下Ruby on rails,Passenger与Nginx的环境搭建

php中文网

php中文网

发布时间:2016-08-08 09:32:16

|

1243人浏览过

|

来源于php中文网

原创

一直听说rubyonrails的开发效率很高,所以前一阵子尝试了下,现在回顾下rails的环境搭建过程。我用的是ubuntu14.04lts,看了下网上的各种帖子以及一些教程,貌似都不建议在windows下做rails开发,一般都是linuxmacos

  1. 前期工作

在安装rails环境前,有一些必要的包需要安装,以免后面的安装遇到各种缺少库的问题(参见http://ihower.tw/rails3/)。执行如下指令:

$sudo apt-get install build-essential bison openssl libreadline6libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-devlibyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-devlibxslt-dev autoconf libc6-dev

在使用apt-get安装时,有时会遇到unableto locate的问题,一般可以用更新来解决:

$sudo apt-get update

update也无法执行,出现”isthe internet authenticated?”之类的提示,则很可能是网络有限制。我在用旅馆的网络时就发现了这个问题。。。。

  1. RVM安装

RVM是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换,这可以给你学习ruby/rails带来极大的便利。当然也可以不用rvm进行管理,但我个人比较倾向于用rvm

安装rvm需要用到curl,这个上面已经装过了。之后按照rvm官网指示安装,很简单,执行两条命令即可:

$ gpg --keyserver hkp://keys.gnupg.net--recv-keys D39DC0E3

$ \curl -sSL https://get.rvm.io | bash -sstable

安装完成后,运行:$source ~/.rvm/scripts/rvm

这样便算完成了rvm的安装。可通过运行$ rvm-v来检查rvm是否安装成功。

  1. rvm安装ruby

运行$rvm install 2.0.0来安装ruby2.0.0版本。这个可根据自己的需要安装相应的版本。若出现Errorrunning ‘requirements_debian…’的错误,可先运行$rvm autolibs disable然后再安装。若如步骤1中已把各种包都安装了则这里应该能成功安装,否则将会出现missingxxx的错误。

  1. Ruby版本的设置

RVM可以用来安装多个版本的ruby,所以若同一台电脑上安装的多个版本的ruby,则需要指定使用哪个版本的ruby。可用$rvm 2.0.0 --default指令来指定默认的版本(这里是2.0.0版)。

注意,对于ubuntuterminalgnome-terminal,所以会出现RVMis not a function的错误,需打开terminalEdit->profile->preferences->Titleand Command,选中Runcommand as a loginshell。关闭terminal再重新打开个terminal即可运行ruby版本设置的命令。具体可参见:https://rvm.io/integration/gnome-terminal

  1. 安装rails

鉴于国内的网络环境,在安装rails前,可将RVMRuby安装源到国内的 淘宝镜像服务器http://ruby.taobao.org/,否则会长时间没有响应而无法安装:

$gemsources --remove https://rubygems.org/

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

$gemsources -l

***CURRENT SOURCES ***


https://ruby.taobao.org

使用rvm设定相应的ruby/railsgemset。如我们想用2.0.0版本的ruby4.1.8版本的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参数可选,若不填,则是安装最新版本的rails。若在安装过程中出现unableto convert “/x89” from ASCII to UTF8之类的错误,可运行$gem install rdoc$gem rdoc --all --overwrite来解决)

$rvm use 2.0.0@rails418 –default(将ruby2.0.0rails4.1.8组合的gemset作为默认使用的gemset

可以用$rvm gemset list来查看自己设了哪些gemset环境,同样的,$rvm list可查看安装了哪些版本的ruby

我们可能会问,如果我有多个rails项目,每个项目需要不同的环境,那每次切换项目时我都需要手动切换gemset环境?事实上,我们可以在各项目的根目录建个.rvmrc文件,在其中写入例如rvmuse 2.0.0@rails418的指令来指定所用的gemset环境。这样,当我们每次进入这个目录是就会切换为此环境。

  1. Rails的部署

我用的是passenger+nginx的部署方式。passenger是一个webapp servernginx是一个高性能的HTTP和反向代理服务器。可用于部署的软件其实有若干,大家可以自行选择。

首先安装passenger$gem install passenger

之后使用rvmsudo指令来安装带passenger模块的nginx

$ rvmsudopassenger-install-nginx-module

这样nginx默认的安装路径为/opt/nginx,修改/opt/nginx/conf/nginx.conf文件来指定根目录为rails项目的public目录。之后启动nginx:

$ sudo /opt/nginx/sbin/nginx

Dang.ai
Dang.ai

Dang.ai是一个AI工具目录集,已收集超过5000+ AI工具

下载

如此即可通过浏览器来使用自己用rails开发的项目了。

使用这种方法安装带passengernginx十分方便。Nginx不像apacheapache在需要某模块时只需配置文件添加模块,重启即可。而nginx则只能配置好需要的模块后再进行编译安装,一旦安装完成将无法再添加模块。所以若要自己分开安装的,需要上网查阅如何配置nginxpassenger。对于分开安装如何配置nginx使其能支持passenger,这里给出passenger的官方参考文档地址:https://www.phusionpassenger.com/documentation/UsersguideNginx.html至于如何将nginx添加至服务中以及开机启动,下面给出http://www.nginx.cn/204.html上的一段脚本:

#!/bin/sh

DESC="nginxdaemon"

NAME=nginx

DAEMON=/opt/nginx/sbin/$NAME

CONFIGFILE=/opt/nginx/conf/$NAME.conf

PIDFILE=/opt/nginx/logs/$NAME.pid

SCRIPTNAME=/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

将这段脚本以新建文件/etc/init.d/nginx的方式保存,之后便可使用sudoservice nginx start/stop/restart来操作nginx服务了。

下面给出如何用rvm卸载rubygemset的指令:

卸载一个ruby版本:$rvm remove 2.0.0

清空一个gemset的所用gem,想重新安装所有gem

$rvm gemset empty 2.0.0@rails418

删除一个gemset$rvm gemset delete rails418

以上就介绍了Ubuntu14.04下Ruby on rails,Passenger与Nginx的环境搭建,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号