[英]Rails Sub URI 403 Forbidden Errors when Deploying with Passenger for Nginx
[英]Deploying with passenger - server answers 403 Forbidden or (over HTTPS) serves the directory index
我在部署第一个Rails应用程序“ PoolShifts”时遇到一些问题。 我的服务器在家里, no-ip.org
仅具有一个域。 因此,我在别名正确位置的“子目录”中设置了所有不同的服务器(如owncloud,phpmyadmin ...)。 我的服务器在Apache 2.2.22上运行Debian 7。 我已经安装了Passenger 4.0.8,并将mod文件passenger.conf设置为:
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-4.0.8
#PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.1.2/ruby
PassengerDefaultRuby /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby
</IfModule>
和passenger.load设置为:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.1.2/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so
就像乘客建议安装的一样。 apache2修改由a2enmod passenger
启用。 注释掉的部分是由安装提供的,但是403 Forbidden on Rails应用建议将其设置为使用which ruby
的结果,因此我尝试了此操作,但没有成功。 我的用户称为“ matze”,我已将我的应用程序复制到/home/matze/PoolShifts
。 该站点已启用,文件/etc/apache2/sites-available/poolshifts
包含:
Alias /poolshifts "/home/matze/PoolShifts/public/"
<VirtualHost *:80>
ServerName localhost
RailsEnv development
DocumentRoot /home/matze/PoolShifts/public/
<Directory /home/matze/PoolShifts/public>
AllowOverride all
Options -MultiViews
Require all granted
Options FollowSymLinks
Order allow,deny
Allow from all
Options +Includes -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName localhost
RailsEnv development
DocumentRoot /home/matze/PoolShifts/public/
<Directory /home/matze/PoolShifts/public>
AllowOverride all
Options -MultiViews
Require all granted
Options FollowSymLinks
Order allow,deny
Allow from all
Options +Includes -Indexes
</Directory>
SSLEngine on
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key
</VirtualHost>
所有其他虚拟主机都可以正常工作(使用SSL加密和不使用SSL加密),但是如果我通过HTTP请求/poolshifts
通过HTTPS收到403 Forbidden
错误和/home/matze/PoolShifts/public
的目录索引。 我只是感到沮丧,因为我一直在寻找和尝试几天以来发现的所有不同解决方案。 似乎没有任何乘客实例在运行,因为passenger-status给了我:
Version : 4.0.8
Date : 2015-08-12 16:52:14 +0200
Instance: 26551
----------- General information -----------
Max pool size : 6
Processes : 0
Requests in top-level queue : 0
----------- Application groups -----------
我可以启动应用程序服务器WebRick,并且应用程序运行正常。 您也许知道我在这里做错了吗?
两周后,我找到了一种使其工作的方法。 别名并非所有旅客都将Rails服务器排除在外。 解决方案是使用完整域作为服务器名称,并将其他所有服务器切换为别名。 我不知道它为什么起作用,但是它起作用了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.