使用 Passenger 进行动态大规模虚拟主机/用户目录

使用 Passenger 进行动态大规模虚拟主机/用户目录

我已经设置了一个 apache 网络服务器,它可以运行 PHP。

它没有设置静态虚拟主机,并且动态路由所有请求。

请求http://example.com/将从文档根目录/var/www/example.com(VirtualDocumentRoot)提供服务,并且请求http://example.com/~user/将从文档根目录/home/user/public_html(mod_userdir) 提供服务。后者无论在哪个域中都可以工作。

我希望能够使用 Phusion Passenger 从文档根目录或子目录为 Ruby on Rails 应用程序提供服务。但是,它要求我向指令中添加几行<VirtualHost>,而这显然不存在。

我更喜欢不需要 root 权限即可部署应用程序的解决方案,但这并不重要。如果我的部署同样简单,我也不介意不使用 Passenger 的解决方案。

答案1

简单的解决方案是在 mod_perl 中编写一个位置模块,该模块会根据每个请求动态更新虚拟主机环境(而不是容器)。这就是我们在客户端通过 ftp 登录之前未设置的站点处理 404 错误的方法。

答案2

不幸的是,这似乎是不可能的。Passenger 与 userdirs 完全不兼容,而使用 VirtualDocumentRoot 则需要单独的 VirtualHost。

相关内容