软件版本: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_...
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
rails_layout, 为各种前端框架生成 Rails 应用程序布局文件 RailsLayout gem使用这里 gem 可以设置你选择的前端框架的布局文件:Zurb基础 5.3Bootstrap 4.0Bootstrap 3.3它还将为 Bootstrap 或者基础设置设计视图。...
karafka 基于Apache Kafka的Ruby和Rails应用程序开发框架
Rails Erd - 为Rails应用程序生成实体关系图
应用Rails进行REST开发.pdf Restful Rails Development
Google Sign-In for Rails 实现将Google登录集成到您的Rails应用中
meta-tags, 用于 Ruby on Rails 应用程序的搜索引擎优化( SEO ) 元标记:使你的Rails 应用程序搜索引擎友好的gem 用于 Ruby on Rails 应用程序的搜索引擎优化( SEO ) 插件。Rails 上的 rubyMetaTags主分支完全支持 ...
一个Rails应用程序,为DIY小型内容分发网络CDN提供支持
Draper - 将面向对象的表示逻辑层添加到您的Rails应用程序
Ruby for Rails 英文原版, pdf格式 ...第四部分讲述了如何应用第二部分和第三部分的Ruby知识来开发Rails应用。 本书适合于Ruby的初学者,也适合于想要进一步提高Ruby编程技能,开发实际Rails应用的Web程序员。
Ruby+on+Rails快速Web应用开发实战.pdf
rails-perftest, 测试和配置你的Rails 应用程序 性能测试 Rails 应用程序本指南介绍了 Ruby on Rails 应用程序性能测试的各种方法。阅读本指南后,你将知道:各种类型的基准测试和分析度量。如何生成性能和基准测试...
《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》:Ruby on Rails是一个全套的MVC web框架,它能帮你开发高质量又美观的web应用,而且开发速度快得出乎你想象。你只须集中精力于应用程序本身,Rails就会帮你...
这是一个在Rails应用程序中使用React并使用webpack的示例
AWS OpsWorks Rails Demo App 是用于运行 AWS OpsWorks 的 Rails 应用程序样本。
Apartment - Rack (和Rails) 应用的数据库多租户
Web开发敏捷之道-应用Rails进行敏捷Web开发 Web开发敏捷之道-应用Rails进行敏捷Web开发-2版 Web开发敏捷之道-应用Rails进行敏捷Web开发-3版