Führen Sie PHP-Skripte innerhalb des Node.js-Webservers aus
Lesezeit: 3 Minuten
Daniel
Welche Schritte sind notwendig, damit ein Node.js-Webserver wie Apache PHP-Skripte ausführt? Gibt es eine Möglichkeit, PHP in Node.js zu integrieren?
Hinweis: Ich möchte PHP-Skripte nicht direkt in Node.js ausführen, sondern über eine Apache-Instanz oder ähnliches „routen“.
Ich hatte die gleiche Frage. Ich habe versucht, PHP über die Shell-Schnittstelle aufzurufen, und es hat das gewünschte Ergebnis geliefert:
var exec = require("child_process").exec;
app.get("https://stackoverflow.com/", function(req, res){exec("php index.php", function (error, stdout, stderr) {res.send(stdout);});});
Ich bin mir sicher, dass dies nicht ganz oben auf der Liste der empfohlenen Praktiken steht, aber es schien zu tun, was ich wollte. Wenn Sie hingegen PHP-Skripte nicht direkt von Node.js ausführen, sondern von einem anderen Webserver aus weiterleiten möchten, der dies tut, scheint dies zu funktionieren:
var exec = require("child_process").exec;
app.get("https://stackoverflow.com/", function(req, res){exec("wget -q -O - http://localhost/", function (error, stdout, stderr) {res.send(stdout);});});
Wie übergebe ich den Parameter von Node JS an das Php-Skript?
– Visal-Sambo
2. April 2019 um 4:03 Uhr
exec(“php index.php ‘param1’ ‘param2′”)
– Vivek Kapoor
4. Juni 2020 um 0:18 Uhr
Node.js unterstützt nur JavaScript. Hier ist ein Tutorial, wie man PHP nebenbei mit Node.js laufen lässt.
Inline-PHP-Server, der auf Node.js ausgeführt wird
Sei besorgt, sei sehr besorgt. Der Name KnotenPHP hat seinen Namen von der Tatsache, dass wir einen netten Node.js-Server effektiv in eine FastCGI-Schnittstelle verwandeln, die mit PHP-FPM interagiert.
Dies ist ein Omega-Alpha-Super-Beta-Proof-of-Concept, aber es führt bereits einige einfache Skripte aus. Meistens für meine Gespräche gemacht Node.js für PHP-Entwickler Dies stellt sich als ein ziemlich interessantes Projekt heraus, das wir höchstwahrscheinlich verwenden werden Orchester
wenn wir uns entscheiden, unsere zu veröffentlichen Inline-PHP-Server das es Benutzern ermöglicht, PHP ohne Apache, Nginx oder einen anderen Webserver auszuführen.
Ja, das widerspricht allen Ideen und Konzepten von Node.js, aber die Idee ist, einen Webserver direkt aus jedem Arbeitsverzeichnis erstellen zu können, damit Entwickler noch schneller als zuvor loslegen können. Sie müssen keine vhosts oder Serverblöcke mehr erstellen oder Ihre /etc/hosts ändern.
Sie können PHP wie bei jedem Webserver ausführen, indem Sie das SPHP-Modul für Knoten verwenden.
Es ist kompatibel, aber nicht von Express abhängig.
Es unterstützt auch Websockets-Anfragen am HTTP-Port.
Es ist eher auf Geschwindigkeit bei geringer Last ausgerichtet als auf Ressourcenschonung.
In Knoten installieren:
npm install sphp
in deiner App:
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/'));
Ich bin auch etwas voreingenommen, weil ich der Autor bin 🙂
Andrej Sidorow
Sie können versuchen, den direkten Link-Knoten -> fastcgi -> php zu implementieren. In der vorherigen Antwort bedient nginx PHP-Anfragen unter Verwendung von http->fastcgi serialisation->unix socket->php und node-Anfragen als http->nginx reverse proxy->node http server.
Es scheint, dass node-fastcgi paser ist im Moment nutzbar, aber nur als Knoten-Fastcgi-Backend. Sie müssen es übernehmen, um es als Fastcgi-Client für den PHP-Fastcgi-Server zu verwenden.
Mick
Ein einfacher, schneller Ansatz wäre meiner meinung nach zu gebrauchen dnode-php dafür.
Sie können eine kurze Einführung sehen Hier. Einfach, schnell und einfach!