2013-05-10 35 views
1

當我嘗試訪問運行在nginx和乘客之上的導軌應用程序時,我得到了403。下面是從日誌文件中的錯誤:403使用nginx +導軌+乘客時禁止

2013/05/09 13:52:34 [error] 27787#0: *1 directory index of "/var/www/Tread-Forth/current/public/" is forbidden, client: 192.249.16.60, server: treadforth.com, request: "GET/\ 
HTTP/1.1", host: "www.treadforth.com" 

當我nginx的root身份運行,甚至會出現此問題,所以我不認爲這是一個權限問題。我認爲問題在於我沒有在我的nginx.conf文件中定義的passenger_rubypassenger_root。問題是,我不知道這些值在配置文件中的位置,我不知道它們的值應該是什麼。任何幫助都會很棒。下面是我的參考文件CONF:

worker_processes 1; 

events { 
    worker_connections 1024; 
} 


http { 
    #passenger_root /usr/local/bin/passenger; 
    #passenger_ruby /usr/local/bin/ruby; 

    include  mime.types; 
    default_type application/octet-stream; 

    sendfile  on; 

    keepalive_timeout 65; 

    server { 
     listen  80; 
     server_name .treadforth.com; 
     root /var/www/Tread-Forth/current/public; 
     passenger_enabled on; 
    } 
} 

你可以看到passenger_root的註釋版本,passenger_ruby我都試過了。當我取消這些註釋時,nginx無法啓動,但不會產生任何錯誤消息。

回答

6

您可以使用passenger-config --root和您的紅寶石安裝路徑which ruby來檢查您的乘客安裝路徑。

+0

謝謝。這解決了這個問題。 – Max 2013-05-10 01:24:31

+0

我有正確的版本,但仍然得到403錯誤http://stackoverflow.com/questions/28277357/rails-sub-uri-403-forbidden-errors-when-deploying-with-passenger-for-nginx – 2015-02-02 13:30:08

1

禁止表示您有權限問題。檢查您的目錄和文件權限,以便它們可以被Web服務器讀取。

3

要爲passenger_root找到路徑:
$乘客配置--root

要查找路徑passenger_ruby,運行下面你看到passenger_ruby路徑
$乘客配置--ruby命令