我在运行Redmine应用程序的Puma Application Server上出现错误。美洲狮正确快速地启动下一个http调用返回此错误...我没有在Google上找到答案如何处理这个问题。
以下是错误消息:
==> log/puma.stderr.log <==
/home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/single.rb:16:in `stop': undefined method `stop' for nil:NilClass (NoMethodError)
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/launcher.rb:146:in `stop'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/launcher.rb:382:in `block in setup_signals'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack.rb:85:in `<module:Digest>'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack.rb:81:in `<module:Auth>'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack.rb:77:in `<module:Rack>'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack.rb:12:in `<top (required)>'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/configuration.rb:300:in `rack_builder'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/configuration.rb:315:in `load_rackup'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/configuration.rb:243:in `app'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/runner.rb:127:in `load_and_bind'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/single.rb:85:in `run'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/launcher.rb:172:in `run'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/lib/puma/cli.rb:74:in `run'
from /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/puma-3.6.0/bin/puma:10:in `<top (required)>'
from /home/david/.rbenv/versions/2.3.1/bin/puma:23:in `load'
from /home/david/.rbenv/versions/2.3.1/bin/puma:23:in `<main>'
以下有关此服务器的信息:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.5.1
- RUBY VERSION: 2.3.1 (2016-04-26 patchlevel 112) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0
- USER INSTALLATION DIRECTORY: /home/david/.gem/ruby/2.3.0
- RUBY EXECUTABLE: /home/david/.rbenv/versions/2.3.1/bin/ruby
- EXECUTABLE DIRECTORY: /home/david/.rbenv/versions/2.3.1/bin
- SPEC CACHE DIRECTORY: /home/david/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /home/david/.rbenv/versions/2.3.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/david/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0
- /home/david/.gem/ruby/2.3.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/david/.rbenv/versions/2.3.1/bin
- /home/david/.rbenv/libexec
- /home/david/.rbenv/plugins/ruby-build/bin
- /home/david/.rbenv/shims
- /home/david/.rbenv/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
$ gem list puma
*** LOCAL GEMS ***
puma (3.6.0)
当我在这样的控制台中自己执行puma时,问题似乎不会发生:
$ puma -C /home/david/public_html/redmine/config/puma.rb
但是当我运行我用此文件创建的服务时会出现问题:
# cat /etc/systemd/system/redmine.service
[Unit]
Description=Puma HTTP Server (Redmine)
After=network.target
# Uncomment for socket activation (see below)
# Requires=puma.socket
[Service]
# Foreground process (do not use --daemon in ExecStart or config.rb)
Type=simple
# Preferably configure a non-privileged user
User=david
# Specify the path to your puma application root
WorkingDirectory=/home/david/public_html/redmine
# Helpful for debugging socket activation, etc.
# Environment=PUMA_DEBUG=1
# The command to start Puma
# Here we are using a binstub generated via:
# `bundle binstubs puma --path ./sbin`
# in the WorkingDirectory (replace <WD> below)
# You can alternatively use `bundle exec --keep-file-descriptors puma`
# ExecStart=<WD>/sbin/puma -b tcp://0.0.0.0:9292 -b ssl://0.0.0.0:9293?key=key.pem&cert=cert.pem
# Alternatively with a config file (in WorkingDirectory) and
# comparable `bind` directives
# ExecStart=<WD>/sbin/puma -C config.rb
ExecStart=/home/david/.rbenv/shims/puma -C /home/david/public_html/redmine/config/puma.rb
Restart=always
[Install]
WantedBy=multi-user.target
Thank you for your help,
David.