質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Hack

Hackは、Facebookが開発したオープンソースのプログラミング言語。同社が開発したHipHop仮想マシン (HHVM) で動作します。静的型付言語でPHPとの互換性を持ちますが、PHPより動作が早いことが特徴です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

460閲覧

HHVM+Nginx環境で、上手くWebアプリケーションが動作しない(502エラー)

th1209

総合スコア40

Hack

Hackは、Facebookが開発したオープンソースのプログラミング言語。同社が開発したHipHop仮想マシン (HHVM) で動作します。静的型付言語でPHPとの互換性を持ちますが、PHPより動作が早いことが特徴です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/08/29 01:31

いつもお世話になっております。

PHP-FPM+Nginxで動作していたWebアプリケーションを、HHVM(FastCGIモード)+Nginxで動作するよう環境設定を行っております。

一通り環境設定が終了し、試しにWebアプリへアクセスしてみたのですが、Nginx側で502エラーが返り上手く動作しません。

NginxやHHVMにはあまり詳しくなく、どこを修正すればいいのかよく分かっていない状態です。

こちらで設定した内容や、具体的な事象を以下に記載しますので、お手数ですがアドバイスを頂けると幸いです。やや広い問題かと思いますので、「xxあたりを調べれば良いのではないか」「xxにあるログファイルを見れば良いのではないか」などを教えて頂くだけでも大変助かります。

サーバの環境

  • Ubuntu 16.04(64bit)
  • Nginx 1.10.3
  • HHVM 3.21.0

現象

  • HHVM(FastCGI、daemonモード)とNginxで環境構築したWebサーバにアクセスすると、502エラーが返ります。
  • /var/log/nginx 以下のエラーログファイルには、以下のようなエラーログが記録されます(他に有益そうな情報は見当たりませんでした)。
2017/08/25 18:39:31 [error] 1635#1635: *36 connect() failed (111: Connection refused) while connecting to upstream, client: 118.238.254.78, server: (サーバ名), request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "(サーバ名)"
  • HHVMのエラーは、/var/log/hhvm/error.logに出力するよう設定したのですが、こちらは空ファイルが生成されるのみで、エラー内容は記載されておりませんでした。
  • また、service --status-allコマンドでサービスの起動状態を確認すると、HHVMが起動していないようでした(コマンドでの起動時に、特にエラーは出力されず)。

設定した内容

  • サーバ上で動作しているPHP-FPMを、以下コマンドで停止しました。

sudo service php5.6-fpm stop

  • /etc/nginx以下の設定ファイルにおける、各ブロック内のFastCGIに関するパラメータを、以下のように修正しました。
# 以下のソケットファイルを見に行くよう修正しました。 fastcgi_pass unix:/var/run/hhvm/sock; # その他のディレクティブは変更なしです。 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$script; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_NAME $name;
  • /etc/hhvm/server.iniファイルを以下のように編集しました。
... hhvm.server.file_socket = /var/run/hhvm/sock hhvm.server.type = fastcgi hhvm.server.default_document = index.php hhvm.log.use_log_file = true hhvm.log.file = /var/log/hhvm/error.log hhvm.repo.central.path = /var/cache/hhvm/hhvm.hhbc ...
  • 以下のコマンドで、Nginxを再起動しました。

nginx -s reload

  • 以下のコマンドで、HHVMをdaemonモードで起動しました。

hhvm --mode daemon -u (ユーザ名) -d hhvm.server.type=fastcgi -d hhvm.server.file_socket=/var/run/hhvm/sock -d pid=/var/run/hhvm/pid

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2017/08/29 01:46

nginxとhhvmは同じサーバー内で稼働してますか?
CHERRY

2017/08/29 01:57 編集

設定ファイルは、/var/run/hhvm/sock にされているようですが、エラーログからすると fastcgi://127.0.0.1:9000 に接続にいっています。 再度設定を確認して、設定が正しいことを確認して、関係するサービスを再起動して動作確認してください。
guest

回答1

0

nginxとhhvmを同サーバーで動かしているのであれば以下を変更し、各サービスを再起動してみてください。

- fastcgi_pass unix:/var/run/hhvm/sock; + fastcgi_pass 127.0.0.1:9000;
- hhvm.server.file_socket = /var/run/hhvm/sock + hhvm.server.port = 9000

投稿2017/08/29 02:13

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

th1209

2017/08/30 00:45 編集

chikuminさん CHERRYさん 教えて頂きありがとうございます。 HHVMとNginxですが、同じサーバに環境構築しております。 確かに、エラーログを見ると9000番のポートに接続してエラーになっていますよね(初歩的な所が抜けておりました)。 元の構成がUNIXファイルソケットを使って接続する設定でしたので、 引き続きUNIXファイルソケットで通信するようにしてみたのですが、どこかで設定が不足していたようです...。 ご教示頂いたとおり、ポートを使って通信させた方が簡単かと思うので、 一旦ポートを使う形で設定を見直してみますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問