我一直在线上学习一些教程,试图设置我的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>
非常感谢任何见解。
答案 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。 祝你好运。