ApacheのようなNode.js Webサーバー機能でPHPスクリプトを実行しますか?Node.js内でPHPを統合する方法はありますか?
注:Node.js内でPHPスクリプトを直接実行するのではなく、Apacheインスタンスまたは類似のものを介して「ルーティング」したいです。
Node.jsはJavaScriptのみをサポートします。 PHPをNode.jsで実行する方法についてのチュートリアルです。
http://blog.mixu.net/2011/01/04/nginx-php-fpm-and-node-js-install-on-centos-5-5/
同じ質問がありました。シェルインターフェイスからphpを呼び出してみたところ、目的の結果が得られました。
var exec = require("child_process").exec;
app.get('/', function(req, res){exec("php index.php", function (error, stdout, stderr) {res.send(stdout);});});
これは推奨されるプラクティスリストの上位にはないはずですが、私が望んでいたことを行っているようです。一方、Node.jsから直接PHPスクリプトを実行したくないが、そうする別のWebサーバーからそれらを中継したい場合、これはトリックを行うようです:
var exec = require("child_process").exec;
app.get('/', function(req, res){exec("wget -q -O - http://localhost/", function (error, stdout, stderr) {res.send(stdout);});});
こちらをご覧ください: https://github.com/davidcoallier/node-php
彼らの私を読んでから:
インラインPHP Node.jsで実行されているサーバー
心配する、非常に心配する。名前NodePHPは、Nice Node.jsサーバーをPHP-FPMとやり取りするFastCGIインターフェースに効果的に変えているという事実から名付けられました。
これはオメガ-アルファ-スーパー-ベータの概念実証ですが、すでにいくつかの簡単なスクリプトを実行しています。 Node.js for PHP Developers)での私の講演はほぼ終了しました。これは非常に興味深いプロジェクトであり、 Orchestra を使用して、Inline PHP serverこれにより、Apache、Nginx、またはWebサーバーなしでPHPを実行できます。
はい、これはNode.jsのすべてのアイデアと概念に反しますが、アイデアは、作業ディレクトリから直接Webサーバーを作成して、開発者が以前よりもさらに速く作業できるようにすることです。仮想ホストやサーバーブロックを作成したり、/ etc/hostsを変更したりする必要はもうありません。
NodeのSPHPモジュールを使用して、他のWebサーバーと同様にPHPを実行できます。
互換性はありますが、エクスプレスに依存していません。
HTTPポートでのwebsocketリクエストもサポートしています。
リソースを節約するのではなく、負荷が小さい場合の速度に偏りがあります。
ノードにインストールするには:
npm install sphp
あなたのアプリで:
var express = require('express');
var sphp = require('sphp');
var app = express();
var server = app.listen(8080);
app.use(sphp.express('public/'));
app.use(express.static('public/'));
詳細については、 https://github.com/paragi/sphp をご覧ください。
私は著者であるため、私も少し偏っています:)
直接リンクノード-> fastcgi-> phpの実装を試みることができます。前の回答では、nginxはhttp-> fastcgi serialisation-> unix socket-> phpを使用してphp要求を処理し、ノード要求はhttp-> nginx reverse proxy-> node httpサーバーとして処理します。
node-fastcgi paser は現時点では使用できますが、ノードfastcgiバックエンドとしてのみ使用できます。 php fastcgiサーバーのfastcgiクライアントとして使用するには、これを採用する必要があります。
PhpがFPMモードの場合、node-phpfpmがオプションになる可能性があります。ドキュメントを確認してください https://www.npmjs.com/package/node-phpfpm
Node-phpを使用して、ノードjsでphpを実行できます。 https://github.com/mkschreder/node-php
PHPノードWASで直接提供できます: https://github.com/paragi/was
チェックアウトする必要があります node-php-fpm
。