启动时客户Apache2 CentOS RVM权限被拒绝

时间:2016-02-26 02:21:39

标签: ruby-on-rails apache centos rvm passenger

我一直在线上学习一些教程,试图设置我的rails应用程序。 它看起来像是一个权限配置,我试图修复它没有任何运气。

我使用的是Ruby 2.3.0。 我有一个名为deploy(用于执行Capistrano任务)和另一个sudoer jwang的用户。我甚至通过两个用户安装了rvm作为多用户安装。

这是日志中的错误:

App 1780 stderr: /etc/profile.d/rvm.sh: line 35:  /home/deploy/.rvm/scripts/rvm: Permission denied
App 1780 stderr: /bin/bash: /home/deploy/.bash_profile: Permission denied
App 1780 stdout: 
App 1780 stderr: *** ERROR ***: Cannot execute /home/deploy/.rvm/gems/ruby-2.3.0/wrappers/ruby: Permission denied (13)

这是我网站的当前配置文件。

<VirtualHost *:80>
ServerName creste.ca

# Tell Apache and Passenger where your app's 'public' directory is
DocumentRoot /var/www/creste/current/public

PassengerRuby /home/deploy/.rvm/gems/ruby-2.3.0/wrappers/ruby

# Relax Apache security settings
<Directory /var/www/creste/current/public>
  Allow from all
  Options -MultiViews
  # Uncomment this if you're on Apache >= 2.4:
  Require all granted
</Directory>

非常感谢任何见解。

2 个答案:

答案 0 :(得分:0)

SELinux问题...安装rvm为sudo用户...

答案 1 :(得分:0)

我之前遇到过同样的问题,这就是我解决问题的方法:

尝试使用set config PassengerUser https://www.phusionpassenger.com/library/config/apache/reference/#passengeruser。使用安装rvm时使用的用户进行设置。 因为您将rails应用程序放在/var/www/上,这是apache / www-data所拥有的,您需要指定拥有该rvm的用户。

所以,基于你的例子,只需添加: PassengerUser deploy 在您的apache配置上PassengerRuby配置之后或之前。

别忘了重启apache。 祝你好运。