2011-08-14 21 views
5

Tôi đã cài đặt gem carrierwave với rmagick.Rails 3 + carrierwave + nginx = permission bị từ chối

Tôi có thể làm cho nó hoạt động tốt nếu tải xuống WEBrick nhưng nhận được 500 lỗi máy chủ nội bộ khi cố gắng sử dụng nginx thay thế.

Các error.log nginx nói:

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" 

Ngoài ra tôi đã tạo một tập tin vào thư mục chứa initializers:

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

Tôi có thiếu cái gì?

Trả lời

9

này không liên quan đến CarrierWave, Nginx là không thể để viết tại thư mục /usr/local/Cellar/nginx/1.0.4/client_body_temp/ với các tập tin được tải lên tạm thời, có nghĩa là quá trình Nginx của bạn doesn không có quyền đối với nó. Hãy đảm bảo rằng người dùng đang chạy nginx có thể đọc/ghi tệp theo đường dẫn cụ thể này, nếu bạn không thay đổi cấu hình, Nginx thường bắt đầu công nhân là người dùng không ai để bạn có thể cho anh ta đọc/ghi acces vào thư mục này.

Chạy lệnh sau:

ps aux | grep "nginx: worker process" 

Và xem những người dùng đang chạy nginx.

+1

Đúng vậy. Cảm ơn bạn Maurício! Bạn đã tiết kiệm cho tôi hai lần đếm về điều này! Chỉ cần thực hiện 'chown : /usr/local/Cellar/nginx/1.0.4/client_body_temp/'và nó hoạt động! :) –

+0

Trong phiên bản mới hơn của nginx, thư mục có thể là **/var/lib/nginx/body ** – Clark

Các vấn đề liên quan