为什么 /usr/bin/env 权限被拒绝用于 Rails 服务器?

为什么 /usr/bin/env 权限被拒绝用于 Rails 服务器?

我刚刚在运行于 Ubuntu 的 apache 服务器上设置了 rails,当我尝试转到根页面时出现此错误:

An error occurred while starting up the preloader. It exited before signalling successful startup back to Phusion Passenger.

/usr/bin/env: 
bash: Permission denied

env 和路径中的所有目录都具有权限 755。我尝试将 env 设置为具有权限 777,但仍然出现相同的错误。Rails 以“nobody”身份运行。为什么会发生这种情况?我不知道还能尝试什么。

在 /etc/apache2/sites-available/api.conf 中:

<VirtualHost *:80>
  ServerName api.thinknation.ca
  ServerAlias api.thinknation.ca
  DocumentRoot /var/www/api/public
  ErrorLog /var/www/logs/error.log
  CustomLog /var/www/logs/access.log combined
  RailsSpawnMethod smart
  <Directory /var/www/api/public>
    # This relaxes Apache security settings.
    AllowOverride all
    # MultiViews must be turned off.
    Options -MultiViews -Indexes
    # Uncomment this if you're on Apache >= 2.4:
    Order allow,deny
    Allow from all
    #Require all granted
  </Directory>
</VirtualHost>

来自我的 rails 目录中的 config/database.yml(省略了敏感的用户名和密码):

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: api_development

test:
  <<: *default
  database: api_test

production:
  <<: *default
  url: <%= ENV['DATABASE_URL'] %>
  database: api
  username: ------------
  password: ------------

不确定还有哪些其他细节或文件相关,如果需要我会添加它们。

答案1

检查 AppArmor 是否失败,但看起来好像 Apache 正在尝试执行该文件但失败了。

配置似乎不正确...看看 Passenger 或 Unicorn。

相关内容