Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在运行精简的Rails应用程序(Redmine)中被拒绝的权限_Ruby On Rails_Linux_Redmine_Thin - Fatal编程技术网

Ruby on rails 在运行精简的Rails应用程序(Redmine)中被拒绝的权限

Ruby on rails 在运行精简的Rails应用程序(Redmine)中被拒绝的权限,ruby-on-rails,linux,redmine,thin,Ruby On Rails,Linux,Redmine,Thin,我正在尝试使用Thin和nginx作为反向代理运行Redmine My/etc/thin2.1/redmine.yml: --- pid: /var/run/thin/redmine.pid group: redmine wait: 30 timeout: 30 log: /var/log/thin/redmine.log max_conns: 1024 require: [] environment: production max_persistent_conns: 512 servers:

我正在尝试使用Thin和nginx作为反向代理运行Redmine

My
/etc/thin2.1/redmine.yml

---
pid: /var/run/thin/redmine.pid
group: redmine
wait: 30
timeout: 30
log: /var/log/thin/redmine.log
max_conns: 1024
require: []

environment: production
max_persistent_conns: 512
servers: 4
daemonize: true
user: redmine
socket: /var/run/thin/redmine.sock
chdir: /var/www/projects.mydomain.tld
当我使用web浏览器访问网站时,我会看到一个
502坏网关
。这是
/var/log/thin/redmine.0.log的内容:

>> Writing PID to /var/run/thin/redmine.0.pid
>> Changing process privilege to redmine:redmine
>> Using rack adapter
>> Exiting!
/usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:158:in `delete': Permission denied @ unlink_internal - /var/run/thin/redmine.0.pid (Errno::EACCES)
        from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:158:in `remove_pid_file'
        from /usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:59:in `block in daemonize'
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /var/www/projects.mydomain.tld/config/boot.rb:4:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /var/www/projects.mydomain.tld/config/application.rb:1:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /var/www/projects.mydomain.tld/config/environment.rb:2:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /var/www/projects.mydomain.tld/config.ru:3:in `block in <main>'
        from /usr/lib/ruby/vendor_ruby/rack/builder.rb:55:in `instance_eval'
        from /usr/lib/ruby/vendor_ruby/rack/builder.rb:55:in `initialize'
        from /var/www/projects.mydomain.tld/config.ru:1:in `new'
        from /var/www/projects.mydomain.tld/config.ru:1:in `<main>'
        from /usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:36:in `eval'
        from /usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:36:in `load'
        from /usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:45:in `for'
        from /usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:169:in `load_adapter'
        from /usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:73:in `start'
        from /usr/lib/ruby/vendor_ruby/thin/runner.rb:185:in `run_command'
        from /usr/lib/ruby/vendor_ruby/thin/runner.rb:151:in `run!'
        from /usr/bin/thin:6:in `<main>'
>将PID写入/var/run/thin/redmine.0.PID
>>将进程权限更改为redmine:redmine
>>使用机架适配器
>>退出!
/usr/lib/ruby/vendor\u ruby/thin/daemonizing.rb:158:“删除”中:权限被拒绝@unlink\u internal-/var/run/thin/redmine.0.pid(Errno::EACCES)
来自/usr/lib/ruby/vendor\u ruby/thin/daemonizing.rb:158:“删除\u pid\u文件”
from/usr/lib/ruby/vendor_ruby/thin/daemonizing.rb:59:in'block in daemonize'
/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:在'require'中:无法加载这样的文件--bundler/setup(LoadError)
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
从/var/www/projects.mydomain.tld/config/boot.rb:4:in`'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
来自/var/www/projects.mydomain.tld/config/application.rb:1:in`'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
来自/var/www/projects.mydomain.tld/config/environment.rb:2:in`'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/usr/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/var/www/projects.mydomain.tld/config.ru:3:in'block in'
from/usr/lib/ruby/vendor\u ruby/rack/builder.rb:55:in'instance\u eval'
from/usr/lib/ruby/vendor_ruby/rack/builder.rb:55:in'initialize'
from/var/www/projects.mydomain.tld/config.ru:1:in`new'
从/var/www/projects.mydomain.tld/config.ru:1:in`'
from/usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:36:in'eval'
from/usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:36:in'load'
from/usr/lib/ruby/vendor_ruby/rack/adapter/loader.rb:45:in'for'
来自/usr/lib/ruby/vendor\u ruby/thin/controllers/controller.rb:169:in'load\u adapter'
from/usr/lib/ruby/vendor_ruby/thin/controllers/controller.rb:73:in'start'
from/usr/lib/ruby/vendor_ruby/thin/runner.rb:185:in'run_命令'
from/usr/lib/ruby/vendor_ruby/thin/runner.rb:151:in'run!'
from/usr/bin/thin:6:in`'
我不明白是什么导致了这个错误。
/var/run/thin/
中的
.pid
文件归root所有。我试图将所有权授予
redmine
thin
,但得到了相同的错误(无论如何,这些文件都是在thin重新启动时重新创建的)

我用rbenv安装了Ruby。我以root用户身份运行了
bundle安装
,这提示这样做
将破坏此计算机上所有非root用户的应用程序
。据我所知,这不应该是个问题,对吗


编辑:如果我在
/etc/thin2.1/redmine.yml
中将用户和组设置为
root
,则权限拒绝错误消失。我认为这是导致另一个错误的原因,但这个错误仍然存在。

对于
取消链接
文件权限过程实际上需要一个权限来写入该文件的目录


因此,要么给予
redmine
写入
/var/run/thin/
的权限,要么将PID和套接字放在其他地方——通常放在应用程序的共享
tmp
中,rails甚至会为它们创建目录。

你是什么意思?我是rails新手,但这不是瘦的任务吗?我没有明确运行Redmine…谢谢你的解释。对我来说,Thin与应用程序的用户一起管理其pid文件有点违反直觉。我把它们放在Redmine的
tmp
目录中,现在它可以正常工作了。