2

私はこれが非常に有名なエラーであることを知っていますが、私はそれを解決することができずに、StackOverflowとグーグルでここで見つけたほとんどすべてを試しました。

私は次の構成を持っています:

  • AmazonEC2上のSLES11SP1
  • nginx 1.2.2
  • 乗客3.0.15
  • レール3

nginxとpassengerをインストールし、nginx.confを次のように設定しました。

http {
    passenger_root /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.15;
    passenger_ruby /usr/bin/ruby;

    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /root/myapp/public;
            autoindex on;
            passenger_enabled on;
        }
    }

    ...

ブラウザからアプリにアクセスすると、403forbiddenと表示され続けます。また、アプリフォルダーの/varと/optでchmod-R 755を実行します(nginxは/ opt / nginxにあります)

ログでは、エラーは次のとおりです。

[error] 5240#0: *1 open() "/root/myapp/public/favicon.ico" failed (13: Permission denied), client: 188.11.5.49, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "ec2-54-247-18-139.eu-west-1.compute.amazonaws.com"

更新:同じエラーが/root/myapp/public/index.html(存在しません)にも表示されます

[error] 5638#0: *1 "/root/myapp/public/index.html" is forbidden (13: Permission denied), client: 188.11.5.49, server: localhost, request: "GET / HTTP/1.1", host: "ec2-54-247-18-139.eu-west-1.compute.amazonaws.com"

更新2:スタンドアロンモードで乗客を実行した場合にも同じエラー:

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================
2012/08/30 08:31:34 [error] 7834#0: *4 "/root/myapp/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0" 
4

5 に答える 5

4

わかりました、解決しました。問題は、nginxにはアプリファイルの読み取り権限が必要であり、ルートからアプリ自体に至るすべての権限を実行する必要があることでした。

ルートで実行chmod -R 755すると問題が解決しました。

于 2012-08-30T08:45:47.827 に答える
1

根本的な原因は nginx.conf 設定にあることがわかりました。

私は同じブロック(場所/)でpassenger_enabledのオンとルートパスを変更し、nginxを再起動します。403禁止エラーが解決しました。

これが私のサンプル設定です:

ユーザー redmine; http {

passenger_root /usr/local/lib/ruby/gems/2.1.0/gems/passenger-4.0.45;
passenger_ruby /usr/local/bin/ruby;
access_log logs/host.access.log;

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

sendfile        on;

keepalive_timeout  65;

# rails server
server {
    listen       80;
    server_name  localhost;

    location / {
       root /usr/local/redmine-2.5.2/public;    
       passenger_enabled on;
       index  index.html index.htm;
    }
}

                                                           Sam Sheen
于 2014-07-13T22:30:00.067 に答える
0

config.ru がありませんか?

私の場合、config.ruが見つからないとエラーが発生しました。

サンプル Config.ru:

root_dir = File.dirname(__FILE__)
app_file = File.join(root_dir, 'pantube.rb')
require app_file

set :environment, :production #ENV['RACK_ENV'].to_sym
set :root,        root_dir
set :app_file,    app_file
disable :run

run Sinatra::Application
于 2013-07-15T04:45:27.807 に答える
-2

あなたが投稿したエラーによると、そのファイルだけに必要な権限がありません。実行してみてくださいchmod 777 /root/myapp/public/favicon.ico

于 2012-08-29T11:39:10.530 に答える