2017-07-27 71 views
0

我们曾经在基于Ubuntu 12的服务器上安装redmine,但我们的主机升级了服务器,现在我们必须将所有内容都移动到新机器上。它现在在Ubuntu 14LTS下运行。我已经安装了LAMP软件包以及redmine和(我认为)需要的所有依赖关系(包括Passenger)。 我做了Apache2的conf文件的修改,现在我能够访问管理平台网站...只拿到了错误页面显示以下内容:Ubuntu上的bundler权限错误(红宝石使用apt,NOT rvm)

Bundler::PermissionError (Bundler::PermissionError) 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/shared_helpers.rb:110:in `rescue in filesystem_access' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/shared_helpers.rb:108:in `filesystem_access' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/definition.rb:306:in `lock' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/runtime.rb:122:in `lock' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/runtime.rb:49:in `setup' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler.rb:101:in `setup' 
/var/lib/gems/1.9.1/gems/bundler-1.15.3/lib/bundler/setup.rb:19:in `<top (required)>' 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require' 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require' 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:245:in `block in run_load_path_setup_code' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:348:in `running_bundler' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:243: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:158:in `<module:App>' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>' 

Application root 
/usr/share/redmine 
Environment (value of RAILS_ENV, RACK_ENV, WSGI_ENV and PASSENGER_ENV) 
production 
Ruby interpreter command 
/usr/bin/ruby 
User and groups 
uid=33(www-data) gid=33(www-data) groups=33(www-data) 

所有我可以从谷歌搜索获得相关的信息到使用RVM或RBENV手动安装Ruby,但是我通过apt进行了设置(并且,是的,使用sudo apt-get ...我现在知道它不适合捆绑器)。 我知道下面的安装:

  • 管理平台2.4.2-1(从APT)
  • 红宝石1.9.3(红宝石-v)它看起来像宝石与/ 1.9上运行。 1个
  • 轨3.2.16(轨道-v)
  • 乘客4.0.37-2

我试图改变chown www-data /var/lib/gems/1.9.1/gems/bundler-1.15.3,但没有成功。

有没有办法纠正这一点,或者我应该垃圾所有的设置和手动重新启动,而无需apt?

回答

0

从上面的堆栈跟踪看来,这看起来像是负责在应用程序根目录中创建Gemfile.lock的bundler部分。

https://github.com/bundler/bundler/blob/1-15-stable/lib/bundler/definition.rb#L307

您的乘客进程的UID和GID似乎是www数据 - 该用户是否拥有到/ usr /共享/管理平台写访问?如果没有,那么这可能是什么错误 - 您的乘客进程正试图生成一个Gemfile.lock,但没有权限这样做。

This is a tutorial on linux users and groups - 它应该给你一个为什么会出现上述问题的概述。

修复方法是将www-data添加到拥有/usr/share/redmine的组中,然后递归地向该组授予组级别写入权限。

+0

非常感谢:我将usr/share/redmine的组拥有权从根改为www-data(root用户仍为拥有者),并为该组添加了写入权限,现在我拥有了redmine主屏幕!继续恢复以前的数据库从旧的redimne到新的redmine .... – Thierry