質問

こんにちは私はVPSでRailsアプリケーションを展開する方法を学びます、私は https://coderwall.com/p / yz8cha このチュートリアル、そしてすべてがうまく機能し、ネットを検索してそれらを修正し、すべての作品が正しくFPとフォルダをVPSに展開し、その後CAPの展開後にコードを変更している場合VPSでは変更されます。また、すべてがターミナルに表示されていないエラーが発生しますが、問題はNGINXサーバーが実行されていない(初期段階でNGINXに表示されている)、どこにいるのかわからない。問題が発生し、私が何をしなければならないのか、私はRails 4.1.4、Ruby 2.1.2、Capistrano(2.15.5)を使用しています。

私はあなたがあなたを見せたいコードを見たいのであれば、ここにどのコードを表示しなければならないかを知らない....これは私のnginx.confファイル

です。
upstream unicorn {
  server unix:/tmp/unicorn.projectname.sock fail_timeout=0;
}

server {
    listen 80 default_server deferred;
  # server_name example.com;
  root /home/administrator/apps/testvps/current/public;

  location ^~ /assets/ {
    gzip_static on;
   expires max;
   add_header Cache-Control public;
   }

   try_files $uri/index.html $uri @unicorn;
   location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://unicorn;
  }

   error_page 500 502 503 504 /500.html;
   client_max_body_size 20M;
   keepalive_timeout 10;
 }
.

これは、VPS端末

nginx -tが発生したときのエラーです。
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log"            failed     (13: Permission denied)
2014/08/01 15:40:35 [warn] 5682#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2014/08/01 15:40:35 [emerg] 5682#0: open() "/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
.

役に立ちましたか?

解決

nginx -tで示されているエラーに従って、ユーザーはNginxログファイルに書き込む権限を持っていません。

rootユーザーnginx -tとしてsudo nginx -tを実行してみてください。

sudo chown -R www-data:www-data /var/log/nginx;
sudo chmod -R 755 /var/log/nginx;
.

編集:

私たちの議論に従って、あなたのNginx設定は正常に設定されました。今、あなたはアプリにアクセスしながら空白のページを見ています。

rootファイルにroutes.rbを追加する必要があります。 Rails 4はpublic/index.htmlファイルを持っていません。だから、あなたは空白のページを見ています。 rootを設定した後は、ホームページを見ることができます。

あなたのさらなる疑問:

だからこれはnginx.confファイルです ルート/ホーム/管理者/アプリ/ TESTVPS /現在/ PUBLIC;

このように変更します。 ルート/ホーム/管理者/アプリ/ TESTVPS /電流;

いいえ、NGINXはアプリのpublicディレクトリを探す必要があります。 root_path

に記載されているようにroutes.rbへのリクエストをナビゲートする責任です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top