Rails的乘客/ tmp /文件夹权限被拒绝

时间:2012-10-11 14:36:48

标签: ruby-on-rails apache passenger

下午所有,

尝试让我的Rails应用程序在Mac Apache MySql Ruby设置和乘客目录上运行。当我尝试通过Web前端访问它时,我收到以下错误。

*** Exception Errno::EACCES in spawn manager (Permission denied - /tmp/passenger.1.0.54375/generation-0/spawn-server/socket.54643.70317578161560) (process 54643, thread #<Thread:0x007fe82c0519c0>):

此vhost的Apache配置如下所示

<VirtualHost *:80>
  ServerName test.me
  DocumentRoot /Users/me/Projects/app/public
  <Directory /Users/me/Projects/app/public>
     AllowOverride all
     Options -MultiViews
  </Directory>

谁能看到我错过的东西? FWIW它试图访问的文件夹由root拥有,这似乎有点奇怪

drwsr-xr-x   3 root        wheel   102 11 Oct 15:25 passenger.1.0.54375

1 个答案:

答案 0 :(得分:2)

Passenger假定config/environement.rb的所有者(请参阅http://www.modrails.com/documentation/Security%20of%20user%20switching%20support.html,重新启动apache / passenger以使更改生效),此用户需要tmp的写入和执行权限。

那么,找出谁拥有config/environement.rb

$> ls -lah config/environment.rb 
-rwxr-xr-x 1 www-data www-data 152 Jan 22 07:53 config/environment.rb

我在这里选择www-data,因为这是我的apache使用的用户。我不推荐root。

$> chown www-data:www-data config/environment.rb

授予此用户对tmp文件夹及其内容的完全访问权限:

$> chmod -R 700 tmp