好的,所以這個問題肯定已經被問了幾十次了,但是我真的經歷了所有類似的問題,而且沒有一個問題與我的問題有關。Nginx - 「/ var/fruby/current/public /」的目錄索引被禁止
所以,歷史和配置 的Rails 3應用程序,乘客+ Nginx的3一點點作爲生產服務器
我目前部署我生產的Rails通過bash腳本3的應用程序,每一次基本上克隆混帳回購協議並執行一些魔術,它有問題,所以我們決定遷移到Capistrano。
寫了deploy.rb腳本,指定的共享文件夾,首先在測試服務器上啓動它,並設法讓它完成並順利運行。
現在我也同樣爲生產服務器,部署它通過Capistrano的,使他們以任何方式慣於衝突從我的手工bash腳本文件夾分開,改變nginx的根從
root /var/www/public;
到
root /var/fruby/current/public;
重新啓動nginx,我得到一個403錯誤和日誌中的以下記錄。
2014/06/08 18:28:32 [error] 5239#0: *1 directory index of "/var/fruby/current/public/" is forbidden, client: 109.187.177.116, server: example.com, request: "GET/HTTP/1.1", host: "example.com", referrer: ""
由於乘客的配置沒有改變,其安全的假設,這個問題是某處文件夾的權限,但老實說,我似乎無法找出什麼問題是英寸的權限,這樣就業主似乎真的一樣對我來說,也許你可以指出我正確的方向?
它必須與乘客有關,因爲如果我手動啓動應用程序與軌道s,它啓動精美。
/opt/nginx/conf/nginx.conf
內部HTTP塊:
passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.18;
passenger_ruby /usr/local/bin/ruby;
proxy_read_timeout 640;
服務器塊:
server {
listen 443;
server_name example.com;
ssl on;
ssl_certificate /opt/nginx/conf/certs/example.com.crt;
ssl_certificate_key /opt/nginx/conf/certs/example.com.key.nopass;
charset utf-8;
#root /var/www/public; # Old directory my bash script deployed to
root /var/fruby/current/public; # New directory, capistrano deploys to
passenger_enabled on;
rails_env production;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
現在fruby文件夾具有以下權限:
drwxr-xr-x 5 root root 4096 Jun 8 18:56 fruby/
裏面fruby文件夾
drwxr-xr-x 5 root root 4096 Jun 8 18:56 ./
drwxr-xr-x 17 root root 4096 Jun 8 17:31 ../
lrwxrwxrwx 1 root root 34 Jun 8 18:56 current -> /var/fruby/releases/20140608145412/
drwxr-xr-x 4 root root 4096 Jun 8 18:54 releases/
drwxr-xr-x 7 root root 4096 Jun 8 17:46 repo/
-rw-r--r-- 1 root root 170 Jun 8 18:56 revisions.log
drwxr-xr-x 7 root root 4096 Jun 8 17:47 shared/
共享文件夾
drwxr-xr-x 7 root root 4096 Jun 8 17:47 ./
drwxr-xr-x 5 root root 4096 Jun 8 18:56 ../
drwxr-xr-x 2 root root 4096 Jun 8 17:49 bin/
drwxr-xr-x 3 root root 4096 Jun 8 17:47 bundle/
drwxr-xr-x 2 root root 4096 Jun 8 17:51 log/
drwxr-xr-x 10 root root 4096 Jun 8 17:24 public/
drwxr-xr-x 6 nobody nogroup 4096 Jun 8 18:56 tmp/
裏面的一切似乎是罰款和幾乎相同的權限,也有生產服務器上。
讓我知道你是否需要更多的輸出。
任何幫助非常感謝!
使用chmod命令等同於'CHMOD -R 1777/tmp',但是這會改變/ tmp和其中的所有內容的權限。/tmp本身應該是模式1777,但其中的內容通常不應該是。 – Wodin
更好的解決方案是不使用root用戶進行部署:)改變這一點,自動解決了這類問題。 – Screatch