2012-11-13 25 views
0

我是Linux和Ruby noob,请耐心等待。创建文件夹时发生EACCES错误

我在写一个使用Sinatra的小型Ruby应用程序,并将它用Capistrano部署到Linux服务器上。我能够在本地成功运行应用程序,甚至远程使用rack -p 4567

我的应用程序使用Dir::mkdir以及此/foo目录中的子目录和文件创建一个目录(我们称之为/foo)。当我使用守护进程-D选项执行机架时,创建/foo文件夹时突然出现文件权限错误。

rackup -D -p 4567 

我知道这与文件权限有关,但我不确定在这里设置什么。网络建议chmod,但这就是如果你从shell运行,对吧?我试图通过07000777Dir::mkdir但他们似乎没有帮助。我如何给守护进程创建目录和文件的权限?

回答

0

事实证明,这是因为我没有在我的应用程序中使用绝对路径。所以当前工作目录指向ruby所在的/ usr/bin。使用File.expand_path(File.dirname(__FILE__))可以获得脚本所在的路径。