Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails FastCGI不使用Rails 4共享主机(Phusion乘客)_Ruby On Rails_.htaccess_Ruby On Rails 4_Passenger_Fastcgi - Fatal编程技术网

Ruby on rails FastCGI不使用Rails 4共享主机(Phusion乘客)

Ruby on rails FastCGI不使用Rails 4共享主机(Phusion乘客),ruby-on-rails,.htaccess,ruby-on-rails-4,passenger,fastcgi,Ruby On Rails,.htaccess,Ruby On Rails 4,Passenger,Fastcgi,我使用的是Rails 4.1.6和ruby 2.1.8p440 目前,我想提高性能并添加configure FastCGI 问题:FastCGI不工作并减慢了我的RoR应用程序。 到目前为止,我有以下目录结构: 博客(Rails 4应用程序) 公共网页 .htaccess 调度.fcgi My.htaccess文件: PassengerAppRoot "/home/individualki/blogs" PassengerBaseURI "/" PassengerRuby "/home/

我使用的是Rails 4.1.6和ruby 2.1.8p440

目前,我想提高性能并添加configure FastCGI

问题:FastCGI不工作并减慢了我的RoR应用程序。

到目前为止,我有以下目录结构:

  • 博客(Rails 4应用程序)
  • 公共网页
    • .htaccess
    • 调度.fcgi
My.htaccess文件:

PassengerAppRoot "/home/individualki/blogs"
PassengerBaseURI "/"
PassengerRuby "/home/individualki/rubyvenv/ror/2.1/bin/ruby"
RailsEnv development

SetEnv RAILS_RELATIVE_URL_ROOT /dispatch

RewriteEngine On

RewriteRule ^(stylesheets/.*)$ - [L]
RewriteRule ^(javascripts/.*)$ - [L]
RewriteRule ^(images/.*)$ - [L]

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
#!/home/individualki/rubyvenv/ror/2.1/bin/ruby



ENV['RAILS_ENV'] ||= 'development'  
ENV['HOME'] ||= `echo ~`.strip  
ENV['GEM_HOME'] = File.expand_path('~/.gems')  
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'

require 'rubygems'  
Gem.clear_paths  
require 'fcgi'

require '../home/individualki/blogs/config/boot.rb'  
require '../home/individualki/blogs/config/environment.rb'

class Rack::PathInfoRewriter  
    def initialize(app)
        @app = app
    end

    def cadsll(env)
        env.delete('SCRIPT_NAME')
        parts = env['REQUEST_URI'].split('?')
        env['PATH_INFO'] = parts[0]
        env['QUERY_STRING'] = parts[1].to_s
        @app.call(env)
    end
end

Rack::Handler::FastCGI.run  
Rack::PathInfoRewriter.new(blogs::Application)  
My dispatch.fcgi文件:

PassengerAppRoot "/home/individualki/blogs"
PassengerBaseURI "/"
PassengerRuby "/home/individualki/rubyvenv/ror/2.1/bin/ruby"
RailsEnv development

SetEnv RAILS_RELATIVE_URL_ROOT /dispatch

RewriteEngine On

RewriteRule ^(stylesheets/.*)$ - [L]
RewriteRule ^(javascripts/.*)$ - [L]
RewriteRule ^(images/.*)$ - [L]

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
#!/home/individualki/rubyvenv/ror/2.1/bin/ruby



ENV['RAILS_ENV'] ||= 'development'  
ENV['HOME'] ||= `echo ~`.strip  
ENV['GEM_HOME'] = File.expand_path('~/.gems')  
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'

require 'rubygems'  
Gem.clear_paths  
require 'fcgi'

require '../home/individualki/blogs/config/boot.rb'  
require '../home/individualki/blogs/config/environment.rb'

class Rack::PathInfoRewriter  
    def initialize(app)
        @app = app
    end

    def cadsll(env)
        env.delete('SCRIPT_NAME')
        parts = env['REQUEST_URI'].split('?')
        env['PATH_INFO'] = parts[0]
        env['QUERY_STRING'] = parts[1].to_s
        @app.call(env)
    end
end

Rack::Handler::FastCGI.run  
Rack::PathInfoRewriter.new(blogs::Application)  
之后,我重新启动了服务器

touch tmp/restart.txt
然后访问我的web应用程序,发现它工作不正常。内容已加载,但没有任何资产-图像、css或js文件。应用程序已经变得慢多了

之后,我检查了我的Cpanel,发现我的应用程序现在使用的最大进程为40/40,CPU使用率上升。这些事情以前从未发生过(至少我没有看到)

我的日志文件:

Started GET "/dispatch/assets/parsley.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:06 +0300
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (75.0ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (367.4ms)

ActionController::RoutingError (No route matches [GET] "/dispatch/assets/parsley.js"):
  actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
  quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
  actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.3) lib/rack/runtime.rb:17:in `call'
  activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
  rack (1.5.3) lib/rack/lock.rb:17:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
  rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
  railties (4.1.6) lib/rails/engine.rb:514:in `call'
  railties (4.1.6) lib/rails/application.rb:144:in `call'
  /opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
  /opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'


  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (44.4ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.4ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (282.0ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.3ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (25.0ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (135.4ms)


Started GET "/dispatch/assets/application.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:07 +0300

ActionController::RoutingError (No route matches [GET] "/dispatch/assets/application.js"):
  actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
  quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
  actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.3) lib/rack/runtime.rb:17:in `call'
  activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
  rack (1.5.3) lib/rack/lock.rb:17:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
  rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
  railties (4.1.6) lib/rails/engine.rb:514:in `call'
  railties (4.1.6) lib/rails/application.rb:144:in `call'
  /opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
  /opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'


  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.3ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (30.7ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.4ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (147.0ms)


Started GET "/dispatch/assets/co.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:07 +0300

ActionController::RoutingError (No route matches [GET] "/dispatch/assets/co.js"):
  actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
  quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
  actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.3) lib/rack/runtime.rb:17:in `call'
  activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
  rack (1.5.3) lib/rack/lock.rb:17:in `call'
  actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
  rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
  railties (4.1.6) lib/rails/engine.rb:514:in `call'
  railties (4.1.6) lib/rails/application.rb:144:in `call'
  /opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
  /opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
  /opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'


  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.2ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (31.6ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
  Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (150.2ms)

提前感谢您的帮助。

速度缓慢可能是由于在开发模式下运行以及所有资产404造成的

假设您从这里获得配置:

看起来您的路径可能配置不正确。这篇文章是这样说的:

这里的事情让我有点困惑。Dreamhost不允许webrick在共享主机帐户上运行,所以我必须找到一个替代方案。幸运的是,一旦你知道要寻找什么,安装起来就很容易了。在要安装Redmine/Rails应用程序的域的根目录中,创建一个
public
文件夹。您将在这里创建两个文件:dispatch.fcgi和.htaccess。以下是您的dispatch.fcgi的外观:

调度.fcgi .htaccess

AddHandler fastcgi script.fcgi
AddHandler fcgid script.fcgi
选项+FollowSymLinks+ExecCGI
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$dispatch.fcgi/$1[QSA,L]
ErrorDocument 500“Rails应用程序无法正确启动”