繁体   English   中英

与乘客一起部署-服务器回答403禁止或(通过HTTPS)提供目录索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM