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 ハッカーを実行する必要がありました。しかし、それはうまくいきます!