为我的Ruby on Rails应用程序设置开发服务器的整个问题让我很困惑.我确信有WEBrick,Mongrel,Passenger,Apache,Nginx等等,我真的不明白他们扮演的角色.
我开始使用WEBrick,现在我使用Mongrel进行开发.这些服务器是独立的,还是它们位于Apache之前?
我读过有关Passenger的内容,我并不真正理解它是什么,该网站称"使Ruby Web应用程序的部署变得轻而易举",它是否取代了Mongrel?它是否像Capistrano一样,也部署了Web应用程序?
请记住我想测试SSL,我相信mongrel不支持,什么是最好的开发服务器设置?
谢谢
我正在使用Ruby 2.0设置Rails 4应用程序,但我得到"Web应用程序无法启动"并得到此跟踪:
cannot load such file -- bundler/setup (LoadError)
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:96:in `preload_app'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:150:in `<module:App>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:28:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我的apache2.conf是:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19
PassengerDefaultRuby /usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
bundle -v 是:
Bundler version 1.3.5
Run Code Online (Sandbox Code Playgroud)
ruby -v 是:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)
gem env 是:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/lib/ruby/gems/1.8/bin
- SPEC CACHE DIRECTORY: …Run Code Online (Sandbox Code Playgroud) 为了跳上Phusion Passenger的乐队,我们为一个小型rails应用程序设置了一个临时服务器来测试.
到目前为止,使用它非常好,它使安装/配置和部署应用程序变得轻而易举.问题是我们使用的网站不会经常受到影响,似乎在后台关闭服务器.这意味着当某人进入该站点时,他们会等待很长时间,直到它启动一个新服务器来处理该请求.我们已经阅读了文档,尝试了很多不同的设置(智能/智能-lv2模式,乘客时间等),但仍然没有找到真正的解决方案.
在浏览Google结果后,我们无法真正找到有用的信息.目前,我们有一个cron作业,每隔一段时间发出一次请求,试图让服务器保持运行.
是否有其他人遇到此问题,您对修复有任何建议吗?
我尝试通过capistrano在nginx和ubuntu上部署我的rails应用程序,如https://gorails.com/deploy/ubuntu/14.04页面上的教程.但最后我收到一条错误信息:
Incomplete response received from application
Run Code Online (Sandbox Code Playgroud)
在我的浏览器中.这可能是乘客的错误,但我怎么能弄明白该怎么办?
这是一个重要的安全问题,我相信这应该是可能的.
一个简单的例子:
您运行社区门户.用户已注册并上传他们的照片.只要允许显示图片,您的应用程序就会提供安全规则.例如,用户必须是系统各方的朋友,以便您可以查看其他人上传的图片.
问题出现了:有人可能会抓取您服务器的图像目录.但是您希望保护您的用户免受此类攻击.
如果可以将图像的二进制数据直接放入HTML标记中,则可以限制用户对用户的访问权限以及运行Web应用程序的组,并将图像数据直接传递给Apache用户和组. HTML.
那么唯一可能的弱点就是您的网络应用运行的用户的密码.
有可能吗?
Rails 3.0.0,乘客2.2.15:
gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
到您的Gemfilebundle installrails/script server&access 开始也有效未检出git://github.com/lmumar/paperclip.git(在rails3).请运行bundle install(Bundler :: GitError)
我曾尝试bundler pack(不利于)和设置BUNDER_HOME到〜/ .bundler(回纹针的git得到由安装有bundler install在.htaccess和不同的地方)在配置/*.RB,但没有成功,太.
〜/ .bundler是由相同的用户Rails项目(客运此用户下运行)所拥有,所以它不可能是一个权限问题.sudo已安装并调用bundle install.
任何提示?
我只是不明白.我想,Bundler的开发是为了解决宝石之间的版本冲突.因此我require "bundler/setup"知道Bundler将加载我所有宝石及其依赖项的正确版本.现在,RVM非常适合管理多个Rubies,我知道,但为什么我应该关心Gemset功能呢?我在这里想念一下吗?它能使我的开发更容易吗?也许,你们中的一些人可以给我一些关于开发和生产的完美RVM + Bundler工作流程的一些提示.
我也不知道RVM何时开始切换到另一个Ruby.我知道.rvmrc我的项目中可以有一个文件,但是我必须cd到这个目录才能进行切换吗?
此外,我通常使用Passenger进行开发,因为Passenger.prefpane在Mac OS中集成非常棒.我还能用RVM做到这一点还是有更好的方法呢?Passenger是否识别.rvmrc文件并切换到正确的Gemset?
我是一位经验丰富的LAMP开发人员,正在进入Rails.我有一个非常愚蠢的问题:Phusion Passenger到底做了什么?
我已经阅读了很多文档,我用Google搜索,我读过维基百科,我读过Stack Overflow.我甚至已经安装它并让它在开发机器上运行(使用Apache).我仍然不知道它到底在做什么.
这是一个猜测:我认为Apache文档根指向/mywebapp/public/而不是,这是奇怪的/mywebapp/,所以我认为它与使得所有内容/mywebapp/都可访问有关.(这是一个疯狂的猜测,基于这样一个事实,我不知道这些东西是如何被访问的.)
我已经知道Passenger是革命性的,开创性的等等,但是它做了什么!
对不起n00b问题,大家好.谢谢!
我和乘客在轨道4上.一切都很顺利,直到我bundle刚才做了.现在我遇到以下错误:
Web application could not be started
uninitialized constant ActionDispatch::Session::EncryptedCookieStore (NameError)
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application/configuration.rb:144:in `const_get'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application/configuration.rb:144:in `session_store'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application.rb:345:in `block in default_middleware_stack'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application.rb:307:in `tap'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application.rb:307:in `default_middleware_stack'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/engine.rb:494:in `app'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application/finisher.rb:34:in `block in <module:Finisher>'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/initializable.rb:30:in `instance_exec'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/initializable.rb:30:in `run'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/initializable.rb:55:in `block in run_initializers'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:219:in `each_strongly_connected_component_from'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:182:in `block in each_strongly_connected_component'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each_strongly_connected_component'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/tsort.rb:148:in `tsort_each'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/initializable.rb:54:in `run_initializers'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/application.rb:214:in `initialize!'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/rails-2ac97df55230/railties/lib/rails/railtie/configurable.rb:30:in `method_missing'
/opt/ptolemy-web/config/environment.rb:5:in `<top (required)>'
config.ru:3:in `require'
config.ru:3:in `block in <main>'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
/u/sf/ytl/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize' …Run Code Online (Sandbox Code Playgroud)