0

Rails 3.2.3 アプリ (ruby 1.9.3p125) を Windows 2003 R2 SP2 サーバーにデプロイしています (聞かないでください)。これは私のGemfileです:

gem 'mysql2'
gem 'tiny_tds'
gem 'activerecord-sqlserver-adapter'
gem 'pdf-toolkit', "~> 1.0.0.rc1"
gem 'mongrel', '>= 1.2.0.pre2'
gem 'dispatcher'

私は Apache 2.2 を実行しており、2 つの雑種を Windows サービスとして実行しています。Apache は正常に起動し、エラーは報告されません。アプリが実行されています。pdftkフォームの入力を簡単に行い、pdfファイルを送信します。つまり、次のようになります。

send_file(....)

開発中は正しい pdf を取得し、Windows での運用中は空の pdf を取得します。これは私の error.log に記録されています。

2012-05-23 10:08:42 -0700: Error calling Dispatcher.dispatch #<NameError: uninitialized constant   ActionController::CgiRequest>
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:76:in `block in process'
<internal:prelude>:10:in `synchronize'
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:74:in `process'
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:165:in `block in process_client'
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:164:in `each'
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:164:in `process_client'
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:291:in `block (2 levels) in run'

これをRails 2.3.8とRuby 1.8.7で実行しました.Apache構成は正しく実行されてから変更されていないため、Apache構成とは関係ないと思います.新しい. Rails 3のために追加しなければならなかった雑種のもの。

アップデート:

私はあきらめて、薄いものを使ってみましたが、うまくいきました。

Windows に Thin をインストールすることに関する投稿のほとんどは、3.0.x の時間枠からのものでした。3.2.3 と Ruby 1.9.3 について少し復習します。

2回のパスでシンをインストールする必要があります

gem install eventmachine --pre
gem install thin

ruby インストーラー DevKit がインストールされている必要があります

テスト後、シンを使用するように Apache の設定をやり直しました。

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName pdftk.neeis.com
  DocumentRoot E:/Apache/pdftk/public/
  RewriteEngine On
  <Proxy balancer://thinservers>
    BalancerMember http://127.0.0.1:3005
    BalancerMember http://127.0.0.1:3006
  </Proxy>
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*) balancer://thinservers%{REQUEST_URI} [P,QSA,L]
  ProxyPass / balancer://thinservers/
  ProxyPassReverse / balancer://thinservers/
  ProxyPreserveHost On
  ProxyPass /images !
  ProxyPass /stylesheets !
  ProxyPass /javascripts !      
  <Proxy * >
    Order Deny,Allow
    Allow from all
  </Proxy>
  ErrorLog E:/Apache/Logs/error.log
  CustomLog E:/Apache/Logs/access.log combined
  LogLevel debug
</VirtualHost>

次に、シンを Windows サービスに変換するという面倒な作業が行われ、Windows 2003 リソース キットをインストールし、svrany.exe を System32 にコピーし、sc コマンドを使用してサービスを作成し、regedt32 ハッカーを実行する必要がありました。しかし、それはうまくいきます!

4

1 に答える 1

0

編集:

一部の gem はまだ Rails 3 をサポートしていません。Thin を試してください。

私の知る限り、mongrel_cluster はまだ Rails 3 をサポートしていません。最速の解決策は Thin に切り替えることです。これは複数の Rails インスタンスをサポートし、その構成ファイルは Mongrel のものと非常に似ています。

クレジット: https://stackoverflow.com/a/5660824/643500

于 2012-05-23T18:06:11.877 に答える