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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PHP

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

13878閲覧

PHPとnode.jsを同時に使用は可能ですか?

sanset

総合スコア186

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PHP

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

1グッド

3クリップ

投稿2015/07/24 13:10

以前にも何回かnode.jsの件で質問させていただき、助けていただいてる者です。

今考えているのは、下記のお絵かきチャットをコンテンツの1部に入れたサイトの構築です。
お絵かきチャットの参考リンク

サイト自体はよくある[ PHP+MySql ]を使用しユーザー登録して、
ログインして日記書いてコメントつけて・・・みたいな単純なものです。
こういったサイトは過去に作成経験があります。

その中で、上記のようなお絵かきチャットをユーザー登録者限定で使用できるようにしたい!と思い、node.jsの勉強をし、こちらでも手助け頂きました。

なので自分の中ではお絵かきチャットのコンテンツだけは、phpファイルをnode.jsで動かすイメージで作成していたのですが・・・

当方、恥ずかしいことにapacheとnode.jsは同じサーバー用のソフトのため、ポートも異なり共存できないという事実を知らず突き進んでしまいました・・・。

同時に使用することができるのか、いろいろ調べて、これかな?と思うようなものもありましたが、自分の中で理解できる記事が見つからず、藁にもすがる思いでこちらに相談させていただきました。

要望をまとめると以下の通りです。

・php+mysqlで登録したユーザー限定のお絵かきチャットコンテンツ(node.js)を作りたい
・その機能が欲しいのはお絵かきチャットの動かす1ページ(1ファイル)だけで、他はPHP+MySqlを使用したコンテンツ

こういったことができるサイトの構築を目指しています。環境はさくらVPSです。

初心者がそんな難しい機能の実装を目指すな!と言いたくなるような質問ですが、どなたか手助けを頂きたいです。
参考になる助言や、記事URLなど、あれば教えていただけると幸いです。
サーバー構築については、サイト公開までの初期設定ができる程度の初心者なので、
理解に乏しいかもしれませんがご了承ください。
よろしくお願いいたします。

teriyakiegg👍を押しています

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

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

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

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

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

guest

回答2

0

nginxであれば、PHPとnode.jsを同じサーバで動かす事はできる様です。
試してはいませんが、以下の様なサイトがありました。

Running both PHP and Node.js on Nginx on the same server
node.js - nginx + nodejs + php - Stack Overflow

PHPとnode.jsを同じサーバで動かすだけで、
連携方法までは書かれていませんが。。。

投稿2015/07/24 14:19

eripong

総合スコア1546

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

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

sanset

2015/08/01 06:11

ご連絡遅れて申し訳ありません。 回答頂きありがとうございます。 仕様上、お一人にしかベストアンサーは出来ませんので、心苦しいですが最初に回答頂いた方をベストアンサーにさせていただきました。申し訳ありません。 また何かございましたらよろしくお願いします。
guest

0

ベストアンサー

ぱっと見で思いつくものとしては以下のような構成でしょうか?
(回答者は Node.js でWebサーバを建てたことが無いにわかです(>_<))

まず、Node.js で作ったアプリと Apache+PHP で作ったアプリでユーザーなどのデータを共有する必要があるかと思います。それには、下記の2通りの案が考えられます。

両方が同じデータベースを参照する。

Apache+PHP の方に、Node.js からの各種情報の取得・更新を受け付けるための REST ライクな WebAPI を設けて、Node.js の方でユーザー情報が必要になったときに Apache+PHP の WebAPI を呼ぶ。

「2」の方が、最近バズっているマイクロサービスっぽくて美しいですが、「1」の方がはるかに簡単です。


次に、Node.js で作ったアプリと Apache+PHP で作ったアプリを、共存して動かすための仕組みも必要です。これには、次のような方法が考えられます。

Node.js をフロントに置いて、お絵かきチャット以外のすべてのリクエストを Apache+PHP にリバースプロキシする。(初心者にも上級者にもオススメできません)

WebSocket をプロキシ可能ななにか(nginx でできるという話を聞いたことがある)をフロントに置いて、Node.js や Apache+PHP にリバースプロキシする。

Node.js と Apache+PHP を、別の IP アドレスにして、別のドメインにする。
サーバに複数の IP アドレスを付与して、別々の IP アドレスでリッスンするか、あるいは、複数のサーバを設ける必要があります。

Node.js と Apache+PHP を、別のポートにする。
一番簡単ですが、社内イントラなどの限定的な環境だけであればともかく、コンシューマー向け(一般人向け)だと、標準とは異なるポートを使用するなんてありえないので、現実的ではありません。


いずれにしても、初心者にはオススメできません。

投稿2015/07/24 14:04

ngyuki

総合スコア4514

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

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

sanset

2015/08/01 06:10

ご連絡遅れて申し訳ありません。 ご丁寧にいくつかの選択肢も提示下さりありがとうございます。 お絵かきチャット単独でリリースする方針に変えようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問