2

整个下午,

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

*** 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>):

此虚拟主机的 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
4

1 回答 1

3

乘客假设拥有者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
于 2013-01-22T07:28:57.453 回答