我有 centos CENTOS 5.5 x86_64。apache 2.2 nginx/0.8.54 rails 3 ruby 1.8 Passenger 它的 cpanel。我试图完成的是将图像上传到 /tmp,然后将其移动到 nginx 服务器的 doc 根目录。将会有很多图像,我希望它们位于 rails 应用程序之外。我在 ubuntu 上毫无问题地完成了此操作,但我无法在生产中使用 ubuntu。
在以非 root 用户身份登录的 rails 控制台上我可以这样做
FileUtils.copy('/tmp/p15s3pt9sm1303tmj1brh1n14dtg8.jpg','/nginx/main/')
但是 rails 应用程序中的相同代码会产生 Errno::EACCES (权限被拒绝 - /nginx/main/p15s9i103q19331cob1oap1l8hvoae.jpg)
我尝试了几乎所有能想到的与符号链接有关的方法,我尝试过将权限完全开放。我将所有者和组更改为 nobody。
有人知道我的问题是什么吗?以及如何解决它?
答案1
在查看 Phusion Passenger 文档后,我发现 Passenger 以 config.ru 所有者的身份运行 rails 应用程序。该权限设置为 nobody。我将所有者更改为 cpanel 用户,这解决了我的问题