我的環境如下:使用乘客使用Rails和Apache 2/SpawnPreparer權限被拒絕
- 的Ubuntu 10.04
- 的Ruby 2.0.0
- 的Rails 4.0
部署的Rails應用程序駐留在/ var/www/application中。部署由Capistrano的處理,因此,目錄結構如下:
[email protected]:/var/www/application# ls -la
total 16
drwxrwxr-x 4 www-data www-data 4096 2013-11-14 12:53 .
drwxr-xr-x 6 www-data www-data 4096 2013-11-12 22:54 ..
lrwxrwxrwx 1 www-data www-data 39 2013-11-14 12:53 current -> /var/www/application/releases/20131114115156
drwxrwxr-x 11 www-data www-data 4096 2013-11-14 12:51 releases
drwxrwxr-x 8 www-data www-data 4096 2013-11-13 01:49 shared
配置/ deploy.rb被配置爲使用一個:本地紅寶石(其已被安裝到../shared)。 Capistrano酒店配置:
require 'bundler/capistrano'
require 'rvm/capistrano'
#....
set :bundle_flags, "--deployment"
set :default_shell, '/bin/bash -l'
set :rvm_ruby_string, :local
#....
before 'deploy:setup', 'rvm:install_rvm'
before 'deploy:setup', 'rvm:install_ruby'
也許是因爲沒有安裝乘客時,這是公認另一個RVM/Ruby安裝此起到了重要作用。乘客告訴我配置Apache 2如下:
LoadModule passenger_module /root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24/buildout/apache2/mod_passenger.so
PassengerRoot /root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24
PassengerDefaultRuby /root/.rvm/wrappers/ruby-2.0.0-p247/ruby
但抱怨我.rvm安裝(位於根:-()和我將需要更改權限(但我沒有改變它們):
It is recommended that you relax permissions as follows:
sudo chmod o+x "/root"
Press Ctrl-C to return to the shell. (Recommended)
After relaxing permissions, re-run this installer.
-OR-
Press Enter to continue anyway.
相應sites-enabled/application
配置:
<VirtualHost *:80>
ServerName subdomain.domain.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/application/current/public
<Directory /var/www/application/current/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
當我啓動的應用程序,我在我的瀏覽器得到了以下錯誤:
Cannot execute "/root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24/buildout/agents/SpawnPreparer": Permission denied (errno=13)
後:
sudo chmod o+x "/root"
一切工作。
你有什麼建議來解決它?我應該重新安裝.rvm和乘客嗎?我可以重新配置Apache配置,以便Apache可以訪問駐留在/ var/www/application中的所有可執行文件嗎?
預先感謝您!
jepetko
你是怎麼解決這個問題的? – surfer190