У меня есть приложение Rails 3.2.3 (ruby 1.9.3p125), развернутое на сервере Windows 2000 R2 SP2 (не спрашивайте). Это мой Gemfile:Rails 3.2.3, Mongrel on WIndows Server 2003 R2 SP2, send_file
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 и имею двух mongrels, работающих как службы Windows. Apache загружается отлично, и никаких ошибок не сообщается. Приложение запущено. он просто делает некоторые формы Pdftk начинку и отправляет файл в формате PDF, а именно:
send_file(....)
В разработке, я получаю правильный PDF, в производстве на окнах, я получаю пустой 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.
ОБНОВЛЕНИЕ:
Я сдался и попробовал его, используя тонкие, прекрасно работает.
Увидев, что большинство сообщений об установке тонких окон были из таймфрейма 3.0.x. Я дам небольшое обновление по 3.2.3 и Ruby 1.9.3.
Вы все еще должны установить тонкий в два прохода
gem install eventmachine --pre
gem install thin
Вы должны иметь уже рубин инсталлятор 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 Resource Kit, скопировать svrany.exe в System32, использовать команду sc для создания se rzices, затем выполните некоторые исправления regedt32. Но это работает!
прочитать http://stackoverflow.com/a/10636946/643500 и посмотреть, если это помогает –
пилу, что уже, разница в том, что мое приложение на самом деле работает, и я только получаю ошибка при попытке файла send_file. Я еще немного поцарапаю себе голову на этом посту, посмотрю, какие выводы я могу извлечь из того, что сообщения об ошибках одинаковы. – RadBrad
Попробуйте на тонком сервере, это должно быть базовое изменение, чтобы проверить его –