読者です 読者をやめる 読者になる 読者になる

弱小プログラマがアンテナ伸ばすためのブログ

ダメプログラマが情報の発信&受信につかっているブログです。主に漫画アニメゲーム攻略などの話題が多いです。

あんりあr・・・仮想サーバーたてようじょ!

最近、自分のやりたい事をやれているのが楽しくなってきました。

ああでも、明日は仕事大変そうだなぁ・・・。アンリアル触れるかな・・・。

 

 

今日も既に夜遅く、明日は朝早いので短めに。

今日は、会社で仕事用の開発環境構築・・・といいつつその実態はue4のデータ受け側サーバー構築をしてました。嘘は言ってない!構築した仮想サーバーはちゃんと仕事で使うし!

 

てことで今日はいろいろ躓いた話を。

 

ue4のJSON受け側サーバーとしてvirtualBox仮想マシンにCentOS6をインストールし、node.jsとmongoDBを使ったサーバーを予定しています。そのための構築作業いろいろをしていました。

 

まずvirtualBoxのインストールからCentOSのインストールまでですが、以下の記事を参考にさせて頂きました、

VirtualBoxにCentOS6.5をインストール ~ 初期設定 - ダメプログラマの技術メモ

 

CentOSインスコ後、node.jsをインストール

CentOSにNode.jsをインストールしてみる - yk5656 diary

 

さて、ここで、サンプルで立てたhttpサーバーにブラウザから接続できない問題が発生したため、めちゃめちゃ悩みました(主に会社で)。

 

んで、VirualBoxに詳しい先輩に聞いたところ、ポートフォワーティングをしておりませんでした。

 

ポートフォワーティング設定は大雑把に言うとホストOSとゲストOSのポートをつなげる設定のことです。

先ほどのサンプルでは、ポート8124を使うように作られているので、ポート8124をポートフォワーティング設定を行い、ゲストOSにアクセスするように設定しなければなりません。

 

設定方法。

visualBoxで起動してる仮想マシンがあったら停止する(念のため)

対象の仮想マシンを選択した状態で設定ボタンを押します。

左側の一覧からネットワークを選択し、アダプター1のタブを選択します。

高度の横にある三角をクリックすると折りたたまれていた項目が出てきます。

ここにポートフォワーティングというボタンがあるのでそれを押します。

 

ポートフォワーティングルールというウィンドウが表示されましたら、右上の+がついた謎のアイコンを押します。

 

すると真ん中の白いところに1行データが追加されます。その中の以下の記述を修正してください。

 

・名前→何でもいいです。そのままで問題ありません

プロトコル→TCPに設定されていることを確認してください。違う場合はダブルクリックするとリストボックスで選択できるようになりますのでTCPを選んでください。

・ホストIP→空のままで問題ありません

・ホストポート→使用したいポート番号を入れてください。今回のサンプルだと8124を入れることになります。

・ゲストIP→空のままで問題ありません

・ゲストポート→同じく使用したいポート番号を入力します。

 

設定が終わったらOKを押して設定を保存します。

仮想マシンを起動します。

 

サンプルのjsファイルをnodeで起動し、httpサーバーを作成します。

ブラウザから、http://XXX.XXX.XXX.XXX:8124にアクセスすると無事表示されます。

 

XXX.XXX.XXX.XXXの部分はデフォルトの場合192.168.56.101になっているはずです。

 

それでも表示されない!という方は設定を見直し、マシン再起動などをおこない、それでもダメな場合はファイヤーウォールなどの設定が原因の場合があるので、そっちを確認してみましょう。

 

とりあえず上記の方法でなんとか仮想サーバーの構築が完了しました。

ちなみに、解決策を下さった先輩からはveigrantを使用すればもっと簡単に構築できるよーとおしえてもらいました。

仮想環境構築ツール「Vagrant」で開発環境を仮想マシン上に自動作成する - さくらのナレッジ

リンクのタイトルにあるように、仮想マシンを自動生成します。今回のポートフォーワーディング設定も設定済みの環境を使えば今回のような設定をせずに実行できます。次回はこれを使ってみたいなぁ・・・。

 

 

今回の環境は仮想サーバー上でnode.jsが動作しているだけですので、次回はスコアを記録したり、ランキングを集計して返すためにデータベースmongoDBを追加したいと思います。

 

あ、その前に送信側の続きや!