Rails 3 + carrierwave + nginx = разрешение запрещено - PullRequest
5 голосов
/ 14 августа 2011

Я установил гем carrierwave с помощью rmagick.

Я могу заставить его работать нормально, если загружу через WEBrick, но получаю 500 Internal Server Error при попытке использовать вместо nginx.

Ошибка nginx.log говорит:

2011/08/14 10:06:40 [crit] 760#0: *4247 open() "/usr/local/Cellar/nginx/1.0.4/client_body_temp/0000000033" failed (13: Permission denied), client: 127.0.0.1, server: jewellery.dev, request: "POST /items/28?locale=en HTTP/1.1", host: "jewellery.dev:8080", referrer: "http://jewellery.dev:8080/items/28/edit?locale=en"

Также я создал в папке инициализаторов файл, содержащий:

CarrierWave.configure do |config|
  config.permissions = 0777
end

Я что-то упустил?

1 Ответ

9 голосов
/ 14 августа 2011

Это не связано с CarrierWave, Nginx не может записывать в папку / usr / local / Cellar / nginx / 1.0.4 / client_body_temp / с временно загруженным файлом, что означает, что выПроцесс Nginx не имеет прав на него.Убедитесь, что пользователь, использующий nginx, может читать / записывать файлы по этому конкретному пути. Если вы не изменили конфигурацию, Nginx обычно запускает своих рабочих как пользователь nobody , поэтому вы можете дать ему доступ для чтения / записи к этомупапка.

Запустите следующую команду:

ps aux | grep "nginx: worker process"

и посмотрите, какой пользователь запускает nginx.

...