使用 nginx 在 Linux 本地部署 Httpresponder

Deploying Httpresponder locally in Linux using nginx

我对 Rails 上的 Ruby 很陌生。我被要求从 git(没有 Heroku)在本地部署 httpresponder。

这是 git 存储库的 link: https://github.com/aaronlerch/respond-to-it

我按照这里的教程来指导我:

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-apache-on-ubuntu-14-04#step-6-——部署

以下文字是我在testapp.config文件中插入的内容:

ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/respond-to-it-master/public
    RailsEnv development
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory "/home/rails/testapp/public">
            Options FollowSymLinks
            Require all granted
    </Directory>

当我重新启动 Apache 时,出现以下错误:

cannot load such file -- bundler/setup (LoadError)
  /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:430:in `activate_gem'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:297:in `block in run_load_path_setup_code'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:435:in `running_bundler'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:296:in `run_load_path_setup_code'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'

Error ID
769d7537

看来问题出在我安装的 Ruby 上。

我找到了解决问题的办法。我必须将 gemfiles 更新为正确的 ruby 和 json 版本。 然后我必须进行捆绑安装。

以下是我遵循的步骤:

导航到源代码所在位置:

cd /var/www/html/respond-to-it-master/

需要将Gemfile中的ruby版本改为电脑安装的版本:

sudo nano Gemfile

更新版本号如下:

ruby '2.3.0'

保存文件(CTRL+X、Y、ENTER)。 现在更新ruby实现的json版本:

sudo nano Gemfile.lock

更新版本号如下:

json (1.8.3)

运行 以下命令安装整个包:

sudo bundle install

现在网络应用程序将 运行 在本地。