我正在尝试安装 Redmine,但无法让 Phusion Passenger 使用 DocumentRoot 以外的任何目录。
我将从 Redmine 下载的公共(public)目录放入 ~/www/public/entry/redmine.mysite.com/,其余目录放入 ~/www/app/redmine.mysite.com/。
我在公用文件夹内的 .htaccess 文件中添加了以下行:
PassengerAppRoot ~/www/app/redmine.mysite.com
每当我尝试加载页面时,它只会给我一个没有找到普通 Mozilla 文件的页面。
有什么想法吗?
附加信息:
我设置了一个代码库,以便 apache 将任何给定的请求 URI 解析为特定的条目文件夹,如下所示:
DocumentRoot 是 ~/www/public
此文件夹中有一个 .htaccess 文件,包括以下规则:
RewriteCond ${lowercase:%{SERVER_NAME}} ^(dev\.)?(stg\.)?(www\.)?(.*)$
RewriteCond %{REQUEST_URI} !^/resource/(.*)$
RewriteRule !^entry/ entry/%4%{REQUEST_URI}
如果我使用 DocumentRoot=~/www/public/entry/redmine.mysite.com/为端口 3000 创建一个新的 VirtualHost,则一切都会正确加载。
但是,如果我改为使用我的代码库的基于 mod_rewrite 的分辨率,我会收到一个找不到页面的错误。
如果我访问 redmine.mysite.com/404.html,它会加载正确文件夹中的 404.html 页面。
如果我将PassengerAppRoot 更改为~/www/app/redmine.mysite.com/test,它会通知我该目录似乎不是有效的Ruby on Rails 应用程序根目录。
最佳答案
看起来解决方案是将 RailsBaseURI 设置为服务器上 DocumentRoot 的相对路径,而不是 REQUEST_URI!
我原以为它指的是实际的 URI 字符串,但事实证明并非如此!
关于ruby-on-rails - 通过 .htaccess 配置 Phusion 乘客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800508/