0

我是 Linux 和 Ruby 菜鸟,所以请多多包涵。

我正在使用 Sinatra 编写一个小型 Rub​​y 应用程序,并使用 Capistrano 将其部署到 Linux 服务器。我能够在本地成功运行该应用程序,甚至远程使用rack -p 4567.

/foo我的应用程序使用Dir::mkdir, 以及该目录内的子目录和文件创建了一个目录(我们称之为) /foo。当我使用 daemon -D 选项执行 rack 时,在创建/foo文件夹时突然出现文件权限错误。

rackup -D -p 4567

我知道这与文件权限有关,但我不确定在这里设置什么。网络推荐 chmod,但那是在你从 shell 运行的情况下,对吧?我尝试过传递0700或传递0777Dir::mkdir但他们似乎没有帮助。如何授予守护程序创建目录和文件的权限?

4

1 回答 1

0

事实证明,这是因为我没有在我的应用程序中使用绝对路径。所以当前工作目录指向的是ruby所在的/usr/bin。

用于File.expand_path(File.dirname(__FILE__))获取脚本所在的路径。

于 2012-11-13T22:03:06.517 回答