部署 Passenger With Apache2 VirtualDocumentRoot

hxplove01 · December 19, 2013 · Last by hxplove01 replied at December 23, 2013 · 2793 hits

内部部署应用很麻烦,打算做一个 generator 生成当前 application 的 apache 配置文件,扔到 apache 配置目录中去,就可以直接访问了。 然后了解 apache 后发现了 VirtualDocumentRoot 这个配置,它的作用是配置通配 virtualhost,比如配置 a.test.com,b.test.com,只需要配置

ServerAlias *.test.com
VirtualDocumentRoot /var/www/%1

就完成了,访问各自的目录 然后...然后发现跟 passenger 不能一起用,访问后直接就是配置的目录的文件列表, 最后发现 passenger 的官方文档说:

VirtualDocumentRoot is not compatible with Phusion Passenger at the moment

请问各位小伙伴们有何解决方案


在追加一点东西吧,我的目的是这样的:我们正在做一个网站的 gem, clone 下来 gem 之后,我只需要执行 thor task,它就会帮我 generator 一个新的 ROR 项目,然后会自动替换里面所有的需要配置的文件,然后会把文件放到正确的位置,然后会生成一个 apache virtualHost 配置文件,并放到 apache 目录中去,然后会重启 apache,然后,你就可以直接访问这个网站了。 而对于一个普通的不会 code 的用户来说,它只需要执行一个 task,这个网站就 ok 了

为何不用 Capistrano 部署?

#1 楼 @kgen 我说的是 apache 的 documentRoot,跟使用哪个 Gem 部署没有关系,我是用的 Capistrano,可是我有十个项目,我还是得 10 个 virtualHost

#2 楼 @hxplove01 现在你修改主贴说明意图后,问得清晰多了。

抛弃 ubuntu12.04 了,ubuntu13.10 中 apache2 默认版本为 2.4, passenger 编译通过没问题,vhost_alias 没问题,一个配置搞定所有项目的配置文件。 ps:低版本的 ubuntu 上从一些 ppa 源安装的 apache2.4,会因为 ubuntu 上的一些 apache 依赖冲突而没有办法通过 passenger 编译,安装、卸载不了依赖的包,在 13.04 中问题依然存在,13.10 中问题解决

You need to Sign in before reply, if you don't have an account, please Sign up first.