首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails:使用"rails生成控制器欢迎“时权限被拒绝

Ruby on Rails:使用"rails生成控制器欢迎“时权限被拒绝
EN

Stack Overflow用户
提问于 2014-05-23 14:35:11
回答 6查看 42.3K关注 0票数 23

我在Red Hat服务器上使用Ruby on Rails。当我试图生成一个控制器文件时,我得到了这个错误:

代码语言:javascript
复制
[ec2-user@ip-172-31-22-128 testApp4]$ rails generate controller welcome
/home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `initialize': Permission denied @ rb_sysopen - /tmp/spring/fea371aaf9d69cfa58bd12f69b3f1bf6.pid (Errno::EACCES)
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `open'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `open'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:22:in `initialize'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:14:in `new'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/server.rb:14:in `boot'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:43:in `block in boot_server'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:41:in `fork'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:41:in `boot_server'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:24:in `call'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in `call'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
from /home/ec2-user/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
from /home/ec2-user/testApp4/bin/spring:16:in `require'
from /home/ec2-user/testApp4/bin/spring:16:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-09-16 21:56:10

我通过运行以下命令解决了这个问题

代码语言:javascript
复制
sudo chmod -R 1777 /tmp

我希望这对像我这样不想停用弹簧宝石的人有所帮助

票数 36
EN

Stack Overflow用户

发布于 2015-02-15 04:04:01

它需要所有权来为每次服务器启动写入重写pid。

我必须用我的完整本地路径& sudo来运行它

$ sudo chmod /Users/MyName/Desktop/projects/my_project/tmp/ -R 777

票数 10
EN

Stack Overflow用户

发布于 2015-04-20 12:44:38

我查看了试图写入pid文件的库lib/spring/env.rb

除非设置了XDG_RUNTIME_DIR,否则该函数每次都会尝试在同一位置创建一个临时目录:

path = Pathname.new(File.join(ENV['XDG_RUNTIME_DIR'] || Dir.tmpdir, "spring"))

将所述变量设置为唯一的目录对我来说是可行的:

代码语言:javascript
复制
export XDG_RUNTIME_DIR=/tmp/`whoami`
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23822491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档