我在apache中使用乘客获取403错误

nar*_*c88 9 apache ruby-on-rails passenger vhosts

我已经安装了所需的工具,并按照几个教程试图让乘客做出回应.

我可以访问公用文件夹中的静态文件(public/500.html或422.hml).昨天我通过vhost进入,发现一些乘客错误.但是一段时间后托管重新启动了服务,从那以后我再也无法访问rails应用程序了.

链接

链接

链接

这些是我用来配置服务器的一些链接.我也读到这可能是一个许可问题; 我已经检查过了,但我不确定它没问题.

Pet*_*rov 17

First of all check your error log. By default, it placed at /var/log/apache2/.

如果您有client denied by server configuration问题,请检查您的网站配置文件/etc/apache2/sites-available/your-site.conf.它必须符合Phusion Passenger用户指南.看看吧Require all granted.

<Directory "/home/user/folder">
    Require all granted 
    Options FollowSymLinks
    # This relaxes Apache security settings.
    AllowOverride None
    # MultiViews must be turned off.
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!"要求所有被授予"使它成功 (4认同)

rog*_*ack 5

对我来说这意味着我正在运行rails 2.3并使用Phusion Passenger 5.x.

显然5.x根本不能与2.2一起使用,并且2.3要求你先在config.ru文件中复制(这样rails会使用rack作为后端).

示例config.ru文件为2.3:

# Rack Dispatcher

# Require your environment file to bootstrap Rails
require File.dirname(__FILE__) + '/config/environment'

# Dispatch the request
run ActionController::Dispatcher.new
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么没有咒语似乎有效,就像Passenger忽略了我的rails应用程序.

在我的/var/log/apache2/error.log文件中,我有这个:

[Mon May 11 15:47:00.397891 2015] [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),以及Options指令禁止的服务器生成的目录索引,引用:https://www.google.com /

令我感到困惑的是一个显然意味着"乘客不在那个虚拟主机上运行".

如果我创建了一个public/index.html文件,那么apache就可以了,所以它不是权限问题.

我也看到了这个,这意味着乘客正好开始:

[2015-05-11 18:23:53.9594 4964/b7415700 agent/Watchdog/Main.cpp:728]:所有Phusion Passenger代理商都已启动!

另请参见https://www.phusionpassenger.com/documentation/Users%20guide%20Apache%204.0.html#_i_get_a_403_forbidden_​​error

所以基本上乘客5.x(在发行说明中它表示不支持rails 2.2,只有你在rails应用程序的根目录中创建一个"config.ru"文件时才支持2.3 .它适用于旧版本的机架像轨道2.3需要,只需删除你的新机架宝石并安装1.1.6或什么不是,删除售卖机架宝石(如果有的话).GL!

另外作为附注,这条消息:

[Mon May 11 18:25:10.235574 2015] [core:alert] [pid 5263:tid 3017780032] [client 127.0.0.1:56737] /home/rdp/dev/prod_flds/public/.htaccess:无效命令'RewriteEngine' ,可能由服务器配置中未包含的模块拼写错误或定义

意味着"删除您的公共/ .htaccess文件,通常不需要乘客"


nar*_*c88 1

答案是乘客给了我 403,因为我必须将 apache 配置上的环境变量“RackEnv”设置为“development”(就我而言)。