2016-10-14 9 views
1

私はMac OSX上でphusionの乗客とnginxを実行しようとしています。それは非常に困難でした。"..."のディレクトリインデックスは禁止されています

私は正確に指示hereに従った。

$ brew install nginx --with-passenger 
$ brew info nginx --with-passenger 

そして、それはこの私に語った:

'HTTP' コンテキスト内で、 /usr/local/etc/nginx/nginx.confにこれを追加し、のPhusion旅客を有効にするには:
passenger_root /usr/local/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini; passenger_ruby/usr/bin/ruby​​;

興味深いのは、私のサイトで使用されているルビーではないということです。サイトの私のルートフォルダへのあなたのCDには、次の取得時に、そこで

rvm --create --versions-conf use [email protected] 

$ rvm-prompt 
[email protected] 

だから、私はnginxのに追加するものである私は、RVMを使用して.versions.confファイルを生成しています。 CONF:私は乗客-config設定を実行すると、それは私にlocations.iniのための別の場所を与えないこと

http { 
    ... 
    passenger_root /usr/local/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini; 
    passenger_ruby /Users/dviglione/.rvm/gems/[email protected]/wrappers/ruby; 

注:

$ /usr/local/bin/passenger-config --root 
/usr/local/Cellar/passenger/5.0.26/libexec/src/ruby_supportlib/phusion_passenger/locations.ini 

どの場所が正しいのかわかりませんが、インストール中に提供された場所に固執しています。他の場所に変更した場合、「このサイトにはアクセスできません」という別の問題が発生します。 nginx.confで

は、私のサーバーブロックは次のようになります。

server { 
    rack_env development; 
    listen  8080; 
    server_name mysite_development; 
    root /Users/myuser/projects/core; 
    access_log /Users/myuser/projects/core/log/nginx_access.log; 
    error_log /Users/myuser/projects/core/log/nginx_error.log; 
    passenger_enabled on; 
} 

私は、/ etc/hostsファイルに以下を追加:

127.0.0.1  mysite_development 
255.255.255.255 broadcasthost 
::1    localhost 
fe80::1%lo0  localhost 

ルートディレクトリには、次の権限を持っています

$ ls -ld core 
drwxr-xr-x 37 myuser CORP\Domain Users 1258 Oct 14 18:45 core 

http://mysite_development:8080/に移動すると、nginxエラーログに次のエラーが表示されます。

2016年10月14日18時52分23秒[エラー] 90766#0: "/ユーザ/ myuserの/プロジェクト/コア/" が禁止され、クライアントの* 1ディレクトリインデックス:127.0.0.1、 サーバー:mysite_development、要求: "GET/HTTP/1.1"、ホスト: :私はテスト用フォルダを作成し、そこでのindex.htmlを入れているので、 "mysite_development 8080"

問題は、nginxの、それ自体ではなく、そのためのサーバーブロックを作成し、index.htmlがブラウザに正常に表示されるようにしました。だから、問題は乗客とかレールだ。

注私は、サーバーブロックにこれを追加した場合:

location/{ 
     root html; 
     index index.html index.htm; 
    } 

その後、私はちょうど得る「nginxのへようこそ!」ページ。

私はchmod 777でも、Railsアプリケーションのディレクトリとそのファイル全体を再帰的に使用しています。 403禁止されたエラーが表示されます。それは乗客にとって問題でなければならない。

どうすれば解決できますか?

+0

どのユーザーがNGINXとして実行されていますか? 'chmod 777'を再帰的に使用したかもしれませんが、ディレクトリの所有権は変更されていません。 Nginxが '/ User/myuser/projects/core /'に下ろそうとすると、最初に '/ User /'を訪れる必要があります。これを行う権限がないので、あなたは403を手に入れます。 –

答えて

1

Passenger's documentaionで説明されているpassenger_app_root指示文を使用して、Railsアプリケーションの実際のRubyコードがある場所を明示的に指定する必要があります。

詳細はfull answerです。

関連する問題