软件版本:ubuntu 8.04/lighttpd 1.4.19/ruby on rails 2.1.2
假定需要布置多 ror 应用的域名是 ror.example.com, 域名下一个子目录为一个应用,如 /app1, /app2..
首先,需要做的就是配置 lighty
$HTTP["host"] =~ "^ror\.example\.com$" {
$HTTP["url"] =~ "^/app1" {
alias.url = ("/app1" => "/path/to/app1/public")
server.error-handler-404 = "/app1/dispatch.fcgi"
fastcgi.server = ( ".fcgi" =>
(( "socket" => "/tmp/app1.socket",
"bin-path" => "/path/to/app1/public/dispatch.fcgi",
"bin-environment" => ("RAILS_RELATIVE_URL_ROOT" => "/app1")
)))
}
}
关键就在于 "bin-environment" => ("RAILS_RELATIVE_URL_ROOT" => "/app1")
这一行,告诉 rails 应用它所在的url。理论上,只要如此配置 lighty 就可以使用 rails 应用正常运行了, 因为根据
rails 的文档中关于 ActionController::AbstractRequest.relative_url_root 的描述:
relative_url_root
()
Returns the path minus the web server relative installation
directory. This can be set with the environment variable
RAILS_RELATIVE_URL_ROOT. It can be automatically extracted for Apache
setups. If the server is not Apache, this method returns an empty
string.
284: def
relative_url_root
285: @@relative_url_root
||=
case
286: when
@env
["RAILS_RELATIVE_URL_ROOT"
]
287: @env
["RAILS_RELATIVE_URL_ROOT"
]
288: when
server_software
==
'apache'
289: @env
["SCRIPT_NAME"
].to_s
.sub
(/\/dispatch\.(fcgi|rb|cgi)$/
, ''
)
290: else
291: ''
292: end
293: end
根据上面所写,只要在 web server 中设置好 RAILS_RELATIVE_URL_ROOT 环境变量,就可以使用 rails
正确运行,生成正确滴 url,可惜事实上如果只设定 lighty 的 RAILS_RELATIVE_URL_ROOT 变量,是不能正常运行的。
经过试验,需要修改 rails app 的 config 目录下的 environment.rb 文件在最后添加上这一行:
ActionController::AbstractRequest.relative_url_root = ENV['RAILS_RELATIVE_URL_ROOT']
然后重启 lighty:
/etc/init.d/lighttpd restart
这样,rails 就能正常运转了
分享到:
相关推荐
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...
总之,"rails应用--导航栏实例工程"是一个综合性的教程,涵盖了Rails开发中的多个关键环节:路由设置、控制器创建、视图渲染、模型定义、以及后台管理工具的使用。通过实践这个实例,开发者可以深入理解Rails的工作...
- **Rails的主要特性**:Rails采用了约定优于配置(Convention over Configuration)的设计理念,这使得开发过程中的很多设置能够自动完成,从而加快了开发速度。 ### Ruby编程语言 - **Ruby语言**:Ruby是一种...
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
"Rails Erd"是一个Ruby gem,专门用于为Rails应用程序自动生成ERD,使得数据库设计和管理变得更加简单和直观。这个工具是由Voormedia开发的,版本号为0eb4577。 ERD是数据库设计的基础,它通过图形化方式展示了各个...
**Ruby-GoOnRails:利用Rails生成器构建Golang应用** Ruby on Rails(简称Rails)是一种流行的Web开发框架,以其“约定优于配置”的理念和高效的开发速度受到开发者喜爱。而Go(Golang)则是一种静态类型、编译型的...
最后,创建测试的 Rails 应用程序,并启动 Mongrel 服务器。 知识点1:Ruby 安装 * 下载 Ruby One-Click Installer 版本 * 安装 Ruby * 检查 Ruby 版本 知识点2:Rails 安装 * 下载 Rails 2.0.2 版本 * 安装 ...
**Rails应用程序** Rails,全称为Ruby on Rails,是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它基于Ruby编程语言。Rails遵循MVC(模型-视图-控制器)架构模式,使得开发者能够高效地构建功能丰富...
优化rails应用的响应时间可以从数据库查询优化、视图渲染优化、静态资源服务优化等多方面着手。 - Web框架基准测试:了解不同Web框架的性能基准,可以帮助我们选择合适的工具和优化手段。基准测试能够提供不同框架...
《应用Rails进行敏捷Web开发》中文第三版是针对Ruby on Rails框架的一本详尽指南,主要聚焦于Rails 2.2.2版本。Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat ...
rails_layout, 为各种前端框架生成 Rails 应用程序布局文件 RailsLayout gem使用这里 gem 可以设置你选择的前端框架的布局文件:Zurb基础 5.3Bootstrap 4.0Bootstrap 3.3它还将为 Bootstrap 或者基础设置设计视图。...
Ruby on Rails:部署Rails应用至Heroku.docx
本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails Engine)进行基于组件的Rails应用开发,以及如何对应用程序的大型模块进行拆分和模块化。以下是书中一些核心知识点的详细说明: 1....
本示例将探讨如何在Rails应用中集成React,并利用webpack进行模块打包,提升项目的前端性能。 首先,React是Facebook推出的一个用于构建用户界面的JavaScript库,以其组件化开发方式和虚拟DOM(Document Object ...
Google Sign-In for Rails 实现将Google登录集成到您的Rails应用中
"Ruby-ApartmentRack和Rails应用的数据库多租户"这一主题旨在探讨如何使用Apartment gem来实现这样的功能。Apartment是Ruby社区中广泛使用的库,它为Rack(包括Rails)应用提供了简单的多租户支持。 Apartment gem...
了解如何在真实世界中运行和管理Rails应用,对于确保应用的稳定性和安全性具有重要意义。 综上所述,《Simply Rails2》不仅为初学者提供了全面的Ruby on Rails入门指南,也为进阶开发者提供了深入的技术细节和实践...