gpt4 book ai didi

ruby-on-rails - 目录列表显示而不是 Rails App - Passenger Apache CentOS 6

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:35 24 4
gpt4 key购买 nike

我有一台 CentOS 6 服务器,安装了 cPanel、Apache、Passenger、Ruby 和 Rails。

我的网站是使用 cPanel 托管的。

当我转到 mysite.org/mysuburi 时,我得到了 Rails 应用程序 (/myrailsapp/public) 的公共(public)目录的目录列表,而不是 Rails 应用程序本身。

这是我的/usr/local/apache/conf/httpd.conf:

<VirtualHost my.ip.add.ress:80>
ServerName mysite.org
ServerAlias www.mysite.org
DocumentRoot /home/mysite/public_html
ServerAdmin webmaster@mysite.org
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/mysite.org combined
<IfModule log_config_module>
<IfModule logio_module>
CustomLog /usr/local/apache/domlogs/mysite.org-bytes_log "%{%s}t %I .\n%{%s}t %O ."
</IfModule>
</IfModule>
## User mysite # Needed for Cpanel::ApacheConf
<IfModule userdir_module>
<IfModule !mpm_itk.c>
<IfModule !ruid2_module>
UserDir enabled mysite
</IfModule>
</IfModule>
</IfModule>

# Enable backwards compatible Server Side Include expression parser for Apache versions >= 2.4.
# To selectively use the newer Apache 2.4 expression parser, disable SSILegacyExprParser in
# the user's .htaccess file. For more information, please read:
# http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
<IfModule include_module>
<Directory "/home/mysite/public_html">
SSILegacyExprParser On
</Directory>
</IfModule>

<IfModule suphp_module>
suPHP_UserGroup mysite mysite
</IfModule>
<IfModule concurrent_php.c>
php4_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
php5_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule !concurrent_php.c>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule sapi_apache2.c>
php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
</IfModule>
<IfModule !mod_disable_suexec.c>
<IfModule !mod_ruid2.c>
SuexecUserGroup mysite mysite
</IfModule>
</IfModule>
<IfModule ruid2_module>
RMode config
RUidGid mysite mysite
</IfModule>
<IfModule mpm_itk.c>
# For more information on MPM ITK, please read:
# http://mpm-itk.sesse.net/
AssignUserID mysite mysite
</IfModule>

<IfModule alias_module>
ScriptAlias /cgi-bin/ /home/mysite/public_html/cgi-bin/
</IfModule>

Include "/usr/local/apache/conf/userdata/std/2_4/mysite/mysite.org/*.conf"
</VirtualHost>

(注意主 block 中的最后一行,表示更多配置)

我的/usr/local/apache/conf/userdata/std/2_4/mysite/mysite.org/rails.conf:

RailsEnv development
RackEnv development

<Directory /home/mysite/rails_apps/myrailsapp/public>
Options -MultiViews +FollowSymLinks
</Directory>

RailsBaseURI /mysuburi

Alias /mysuburi /home/mysite/rails_apps/myrailsapp/public
<Location /mysuburi>
PassengerBaseURI /mysuburi
PassengerAppRoot /home/mysite/rails_apps/myrailsapp
</Location>

<Directory /home/mysite/rails_apps/myrailsapp/public>
Allow from all
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
Require all granted
</Directory>

PassengerResolveSymlinksInDocumentRoot on

我的/usr/local/apache/conf/includes/pre_main_global.conf:

Include "/usr/local/apache/conf/passenger.conf"

我的/usr/local/apache/conf/passenger.conf:

   LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21
PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

ruby -v 的输出; rails -v; passenger -v:

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
Rails 4.2.4
Phusion Passenger version 5.0.21

我还将我的应用程序的公共(public)目录符号链接(symbolic link)到我的 public_html 文件夹中的子文件夹,如下所示:

/home/mysite/rails_apps/myrailsapp/public/home/mysite/public_html/mysuburi

passenger-status 的输出:

----------- General information -----------
Max pool size : 6
App groups : 0
Processes : 0
Requests in top-level queue : 0

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

我已经无计可施了...有人可以帮我解决这个令人头疼的问题吗?

更新:安装了两个版本的 passenger。我卸载了两者并重新安装了 5.0.21,然后更新了 passenger.conf 文件。仍然有同样的问题,具有相同的配置和输出。

最佳答案

我遇到了同样的问题。我在 serverfault 上找到了这个答案,这挽救了我的一天: https://serverfault.com/questions/731814/apachepassenger-not-serving-the-root-of-the-sinatra-application

他建议禁用 autoindex_module 的加载,因为 Apache 2.4.17 中的一个错误与 Passenger 结合使用,这对我有用。

关于ruby-on-rails - 目录列表显示而不是 Rails App - Passenger Apache CentOS 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com