问题描述
我通过RVM对Ruby进行了多用户安装,如下所示:-
赞:
curl -sSL https://get.rvm.io | sudo bash -s stable
sudo usermod -a -G rvm `whoami`
if sudo grep -q secure_path /etc/sudoers; then sudo sh -c "echo export rvmsudo_secure_path=1 >> /etc/profile.d/rvm_secure_path.sh" && echo Environment variable installed; fi
以上操作是作为特定用户完成的。 whoami
是红宝石用户。
Apache以用户www-data的身份运行,并给出了此错误。
App 15064 output: Current user: admin (id=1)
App 15064 output: Rendering my/account.html.erb within layouts/base
App 15064 output: Rendered my/account.html.erb within layouts/base (23.7ms)
App 15064 output: Completed 500 Internal Server Error in 42ms (ActiveRecord: 10.5ms)
App 15064 output:
App 15064 output: ActionView::Template::Error (Permission denied @ dir_s_mkdir - /srv/redmine-4.1.1/tmp/cache/D38):
App 15064 output: 23: <p><%= f.text_field :lastname,:required => true %></p>
App 15064 output: 24: <p><%= f.text_field :mail,:required => true %></p>
App 15064 output: 25: <% unless @user.force_default_language? %>
App 15064 output: 26: <p><%= f.select :language,lang_options_for_select %></p>
App 15064 output: 27: <% end %>
注意:/srv/redmine-4.1.1由ruby-user拥有,某些特定的文件夹(包括tmp文件夹)由www-data拥有。
stat -c "%A %a" tmp
drwxr-xr-x 755
stat -c "%A %a" tmp/cache/
drwxrwxr-x 775
我将ruby-user添加到了www-data组中,错误消失了。当我在/ tmp / cache文件夹中检查时,确实用户/组是ruby-user。
我想知道我是否做对了。有人可以向我解释为什么在多用户rvm安装中需要此用户吗? Apache / Passenger不能通过www-data调用ruby吗?也许如果将www-data添加到rvm组中,将不需要该用户?我不了解复杂性,因此无法查询。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)