加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Passenger独立工作,但Apache的Passenger Modul

发布时间:2020-12-17 03:02:09 所属栏目:百科 来源:网络整理
导读:我有一个RoR Web应用程序,我正在尝试使用Apache上的Passenger.奇怪的是,如果我使用Passenger Standalone,我可以访问Web应用程序,但我似乎无法使用带有Passenger模块的Apache访问Web应用程序. 乘客模块似乎正在运行,因为我可以启动Apache而没有错误,并且Passe
我有一个RoR Web应用程序,我正在尝试使用Apache上的Passenger.奇怪的是,如果我使用Passenger Standalone,我可以访问Web应用程序,但我似乎无法使用带有Passenger模块的Apache访问Web应用程序.

乘客模块似乎正在运行,因为我可以启动Apache而没有错误,并且Passenger-status返回以下内容:

----------- General information -----------
max      = 6
count    = 0
active   = 0
inactive = 0
Waiting on global queue: 0

----------- Application groups -----------

当我尝试访问Web应用程序时,我获得了公用文件夹目录的列表.

这是我的虚拟主机文件:

<VirtualHost *:80>
ServerAdmin smith@example.com

DocumentRoot /home/smith/www/dashboard/public
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/smith/www/dashboard/public>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug,info,notice,warn,error,crit,# alert,emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

我在apache2.conf文件的末尾有以下内容:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger 3.0.11/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
   PassengerRuby /usr/bin/ruby1.8

我正在试着想出这个问题.希望得到一些帮助.

谢谢.

解决方法

经过数周的试验和错误,我终于能够通过RTFM解决这个问题了.令我感到惊讶的是,我对Stackoverflow上的问题没有回复,而且我无法在其他地方找到任何其他有助于我的问题的文章.这个问题必须影响在运行Apache2和Passenger的Linux服务器上使用Capistrano部署RoR应用程序的每个人.

我让Capistrano将应用程序部署到/ home / smith / www / dashboard,它创建了一个当前文件夹,符号链接到发行版/

乘客需要找到config / environment.rb来启动Rails应用程序.默认情况下,Phusion Passenger假定应用程序的根目录是公共目录的父目录.请参阅:http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerAppRoot

问题是,当使用Capistrano时,默认情况下它会将应用程序部署到

/家庭/史密斯/ WWW /仪表/电流/

所以默认情况下,Passenger估计路径为:

/home/smith/www/dashboard/config/environment.rb

Passenger提供了在Apache虚拟主机文件中设置PassengerAppRoot配置选项的功能,如下所示:

PassengerAppRoot / home / smith / www / dashboard / current

这允许Passenger正确地找到config / environment.rb文件:

PassengerAppRoot /home/scervera/www/dashboard/current/config/environment.rb

这是我的虚拟主机文件的其余部分:

<VirtualHost *:80>
    ServerName www.example.com        
    DocumentRoot /home/smith/www/dashboard/current/public

   <Directory /home/smith/www/dashboard/current/public>
        Options FollowSymLinks
    AllowOverride none
    Order allow,deny
    Allow from all
   </Directory>

    PassengerAppRoot /home/smith/www/dashboard/current

</VirtualHost>

可能有其他方法可以解决这个问题,但我相信这是“按书”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读