我正在考虑使用mod_php做一些非常相似的事情:在Apache内部以某种方式删除应用程序并使其与Passenger一起运行,而不在httpd.conf中添加任何(否) vhost,除了基本的Passenger配置之外什么都没有)。 它与Wordpress或许多其他框架非常相似:只需在文件夹中解压缩/ svn结帐并运行它。
我知道有可能使用CGI和FCGI,但我想知道是否也可以利用乘客的速度。
我试图在官方网站上试图找到一个特定的.htaccess和config.ru配置的机架指令,但到目前为止还没有。
我知道这不常见,但......它甚至可能吗?
答案 0 :(得分:1)
如果没有配置虚拟主机,则无法实现。
Rails应用程序与PHP文件不同;文件系统上的文件与URL不对应。 PHP文件位于 DocumentRoot
内,而Rails / Rack应用位于 DocumentRoot
之外。
因此Passenger无法检测您的应用程序的位置。您需要首先告诉它where it is located,或您需要将虚拟主机的DocumentRoot
指向应用程序的/public
目录。在这种情况下,乘客将detect that it is a Rails/Rack app并且您不需要额外的乘客配置,但执行需要为每个应用程序提供虚拟主机。
更新:Passenger官员提及RailsBaseURI
is allowed within a .htaccess file。在您的文档根目录中添加此内容并从子目录(例如/docroot/yourapp
)创建符号链接到您的应用程序的/public
目录可能就是您所需要的。
答案 1 :(得分:0)
这完全取决于httpd.conf中已有的内容
如果没有在许多默认的apache安装上修改apache配置文件,你甚至无法运行PHP应用程序。
答案 2 :(得分:0)
将config.ru放到某个目录可能会这样做吗?
答案 3 :(得分:0)
这几乎是可能的。如果配置正确,并且apache + mod_rails知道您的应用程序在哪里,则需要更改/path/to/your/app/tmp/restart.txt
的上次修改日期。使用ssh访问,您可以这样做
touch /path/to/your/app/tmp/restart.txt
<强>更新强>
或者您可以创建/path/to/your/app/tmp/always_restart.txt
有关此内容的更多信息,请访问: http://www.modrails.com/documentation/Users%20guide.html#_making_the_application_restart_after_each_request