对我来说没问题,这意味着我正在运行 rails 2.3 并使用 Phusion Passenger 5.x
显然 5.x 根本不适用于 2.2,而 2.3 需要您先复制一个 config.ru 文件(这样 rails 将使用 rack 作为后端)。
2.3 的示例 config.ru 文件:
# Rack Dispatcher
# Require your environment file to bootstrap Rails
require File.dirname(__FILE__) + '/config/environment'
# Dispatch the request
run ActionController::Dispatcher.new
我不明白为什么咒语似乎不起作用,就像Passenger 忽略了我的rails 应用程序。
在我的 /var/log/apache2/error.log 文件中,我有这个:
[2015 年 5 月 11 日星期一 15:47:00.397891] [autoindex:error] [pid 17490:tid 3058694976] [client 216.49.181.251:49248] AH01276:无法提供目录 /home/x/y/railsapp/public/ : 找不到匹配的 DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm),并且服务器生成的目录索引被选项指令禁止,引用者:https://www.google.com/
这让我很困惑,显然意思是“乘客没有在那个虚拟主机上运行”。
如果我创建了一个 public/index.html 文件,apache 服务就很好,所以这不是权限问题。
我也看到了,说明乘客正常启动:
[ 2015-05-11 18:23:53.9594 4964/b7415700 agent/Watchdog/Main.cpp:728 ]:所有 Phusion 乘客代理已启动!
另见https://www.phusionpassenger.com/documentation/Users%20guide%20Apache%204.0.html#_i_get_a_403_forbidden_error
所以基本上使用乘客 5.x(在发行说明中它说不支持 rails 2.2,只有在 root 中创建“config.ru”文件时才支持 2.3您的 rails 应用程序。它适用于旧版本的机架,如 rails 2.3 所需的,只需删除较新的机架 gem 并安装 1.1.6 或其他,如果有,请删除供应商的机架 gem。GL!
另外作为旁注,此消息:
[2015 年 5 月 11 日星期一 18:25:10.235574] [core:alert] [pid 5263:tid 3017780032] [client 127.0.0.1:56737] /home/rdp/dev/prod_flds/public/.htaccess: 无效命令'RewriteEngine',可能拼写错误或由未包含在服务器配置中的模块定义
意思是“删除乘客通常不需要的 public/.htaccess 文件”