使用Rails上传Paperclip图像时出现Nginx 500错误

时间:2016-08-11 22:00:05

标签: ruby-on-rails linux nginx passenger

我在Nginx,Phusion Passenger,Postgresql和Arch Linux上运行了Rails 4.1.4应用程序。我正在与Capistrano一起部署。

在我的Rails应用程序中,我试图通过Paperclip gem上传图像。默认情况下,Paperclip将图像存储在/public/system中。我不希望在重新部署时覆盖该目录,因此在deploy.rb我已将其设置为链接目录:

set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads', 'public/documents')

现在,当我转到其中一个表单并尝试上传图像时,我收到来自Nginx的500内部服务器错误。检查Nginx error.log,报告:

  

2016/08/10 14:55:56 [暴击] 636#0:* 2打开()   " /家庭/ rserver / nginx的/ client_body_temp / 0000000002"失败了(13:   许可被拒绝),......

     

2016/08/10 14:55:56 [alert] 636#0:* 2无法统计   ' /home/rserver/nginx/config.ru':权限被拒绝(错误= 13);这个   错误表示Nginx工作进程(PID 636,作为UID 99运行)   没有权限访问此文件。请阅读此页面   学习如何解决这个问题:   https://www.phusionpassenger.com/library/admin/nginx/troubleshooting/?a=upon-accessing-the-web-app-nginx-reports-a-permission-denied-error;   额外信息,......

现在,我已经去了提供的网址。总之,它说相关文件夹没有可执行权限,所以我需要添加它们。但是,在我遵循该指令后,结果没有差异:

drwxr-xr-x 11 rserver rserver  4096 Jun 25 13:38 nginx

我为var中的应用程序文件夹做了同样的事情:

drwxr-xr-x  5 rserver root 4096 Aug 10 14:31 polyov

现在,我已经看过this question,并且已经关注了它。运行nginx和whatnot的用户称为rserver,因此我修改了nginx.conf并添加了:

passenger_default_user rserver;

然而,然后一个乘客然后Nginx然后系统重启没有解决问题 - Nginx工作进程仍由nobody运行,我仍然无法上传文件。

0 个答案:

没有答案