我刚刚在运行于 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。