Ergebnis 1 bis 11 von 11
-
17-04-2016, 21:36 #1
PHP unter NodeJs via ExpressJS nutzen
Hallo Leute, ich komme absolut nicht weiter.
Ich möchte das Analyse tool piwik unter Nodejs nutzen.
Das benötigt aber php.
Habe da mal bei npm geguckt was es da so gibt und habe mich für das Modul node-php entschinden, da ist zumindest von Wordpress die rede und das ist ähnlich komplex wie piwik.
Problem ich erhallte immer die selbe Fehlermeldung
Uncaught exception: The configuration file {/home/xorg1990/workspace/http_server/phpdocs/piwik/config/config.ini.php} has not been found or could not be read. If the file exists, please check that /home/xorg1990/workspace/http_server/phpdocs/piwik/config/config.ini.php is readable by the user 'xorg1990'. in /home/xorg1990/workspace/http_server/phpdocs/piwik/core/Application/Kernel/EnvironmentValidator.php line 63 #0 /home/xorg1990/workspace/http_server/phpdocs/piwik/core/Application/Kernel/EnvironmentValidator.php(44): Piwik\Application\Kernel\EnvironmentValidator->checkConfigFileExists('/home/xorg1990/...', false) #1 /home/xorg1990/workspace/http_server/phpdocs/piwik/core/Application/Environment.php(185): Piwik\Application\Kernel\EnvironmentValidator->validate() #2 /home/xorg1990/workspace/http_server/phpdocs/piwik/core/Application/Environment.php(94): Piwik\Application\Environment->validateEnvironment() #3 /home/xorg1990/workspace/http_server/phpdocs/piwik/core/dispatch.php(28): Piwik\Application\Environment->init() #4 /home/xorg1990/workspace/http_server/phpdocs/piwik/index.php(27): require_once('/home/xorg1990/...') #5 {main}
Das Modul express-php schaft es wenigstens was auszugeben, aber dann kann ich meine normalen routes nicht nutzen, 2tens bei den Formularen wo man sein DB Daten eingeben muss geht es nicht mehr weiter - Timeout.
Ich arbeite unter Linux/Debian mit express 4.x
Die Express konfiguration ist wie folgt:
app.use("/piwik", php.cgi(__dirname+"/phpdocs/piwik"))
Irgendwelche ideen?
Im Prinzip ist es mir egal welche Modul genutzt wird, funktionieren muss es.Geändert von mikdoe (24-04-2016 um 20:50 Uhr) Grund: Gelöst
-
18-04-2016, 22:10 #2
AW: PHP unter NodeJs via ExpressJS nutzen
Die Fehlermeldung ist doch ziemlich aussagekräftig. Welche Berechtigungen hat denn diese Datei?
-
19-04-2016, 19:09 #3
AW: PHP unter NodeJs via ExpressJS nutzen
Die Datei config.ini.php existiert nicht im Ordner config. Schon in den zip, den man bei piwik.org zieht existiert die Datei nicht, das ist ja das komische. So wie ich ich das gelesen habe wird die Datei erst angelegt. Der Ordner hat die höchsten rechte chmod 755.
Wie gesagt das Modul express-php schaft es wenigsten bis zur Ausgabe, kann aber keine Formulardaten verarbeiten. Kommt immer Timeout nach 10min Laden
Habe such schon mehrfach die Ordner phpdocs/piwik neu angelegt im Fall das da schon config Dateien rumliegen -erfolglos.Geändert von xorg1990 (19-04-2016 um 19:11 Uhr)
-
19-04-2016, 21:16 #4
AW: PHP unter NodeJs via ExpressJS nutzen
Dann muss die config.ini.php innerhalb irgendeiner Installationsroutine angelegt werden. Gibt es da nicht irgendein Installationsscript?
-
21-04-2016, 22:01 #5
AW: PHP unter NodeJs via ExpressJS nutzen
Die Installationsroutine startet eigentlich beim erstmaligen Aufruf von piwik.
Habe schon an exec gedacht und via stdout zu arbeiten qick and dirty.
-
22-04-2016, 08:20 #6
AW: PHP unter NodeJs via ExpressJS nutzen
-
22-04-2016, 21:21 #7
AW: PHP unter NodeJs via ExpressJS nutzen
Nicht ganz, die spawnen php als child. Habe exec probiert selbes Problem. Habe nochmal express-php rum gespielt kann jetzt php und meine node routes parallel nutzen aber Formulare gehen immer noch nicht . Verstehe nicht war das eine geht und das andere nicht, der Quellcode ist fast identisch.
-
24-04-2016, 18:03 #8
AW: PHP unter NodeJs via ExpressJS nutzen
Gelöst.
Geht einwandfrei mit den modul express-php.
Wichtg ist das man das cgi vor den bodyParser initalisert. Dann gehen auch die Formulare.
Code:app.use("/piwik/plugins", express.static(__dirname + "/phpdocs/piwik/plugins")) app.use("/piwik/libs", express.static(__dirname + "/phpdocs/piwik/libs")) app.all(/.+\.php$/, php.cgi("./phpdocs")) //.... app.use(bodyParser());
Achtung niemals expressjs auf port 80 laufen lassen, dann muss man nodejs als root starten, damit wären alle einstellung fürn Ar*** . Die Pfade stimme dann auch nicht mher, lieber eine Portweiterleiung einrichten.
Fast vergessen,
Die Pfade sehen so aus DOCUMENT_ROOT//phpdocs/piwik/ <- darin ist die index.php
die URL ist dann x.x.x.x:2000/piwik/index.php
THX to: HansHammel für den hinweis mit der Initialisierung
https://github.com/HansHammelGeändert von xorg1990 (24-04-2016 um 18:13 Uhr)
-
07-03-2017, 19:00 #9
AW: PHP unter NodeJs via ExpressJS nutzen
Hi!
Versuche auch gerade express-php zum Laufen zu bekommen. Leider ist der Beispiel-Code auf der Seite für mich nicht sehr hilfreich -> da ich mich damit überhaupt nicht auskenne. Und auch keine Ahung habe ob ich sonst noch irgendwas installieren muss bevor das unter VS Code + Express läuft. Vielleicht könnte mir hier wer weiterhelfen ??
Express-php habe ich installiert und meine app.js sieht soweit so aus:
Code:var express = require('express'); var app = express(); var php = require('express-php'); var bodyParser = require('body-parser'); var port = process.env.PORT || 8080; ... var environment = process.env.NODE_ENV; app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); ... switch (environment) { case 'build': console.log('** BUILD **'); app.use(express.static('./build/')); app.use('/*', express.static('./build/index.html')); break; default: console.log('** DEV **'); app.use(express.static('./src/client/')); app.use(php.cgi('./src/client/')); // ist das hier richtig ? app.use(express.static('./')); app.use(express.static('./tmp')); app.use('/*', express.static('./src/client/index.html')); break; } ...
Code:var $promise = $http.post('php/login.php', user);
- Stimmt überhaupt die Stelle an der ich app.use(php.cgi('./src/client/')); einsetze ?
- Mein angegebener Pfad dafür ist das Root-Verzeichnis meiner SPA.
- Habe das mit dem BodyParser hinter das switch-case gestellt -> löst aber das Problem nicht
- Muss ich noch irgendetwas zusätzlich installieren um PHP zu 'aktivieren'?
Wäre auf jeden Fall für jeden Hinweis dankbar :-)Geändert von alphakanal (07-03-2017 um 19:28 Uhr)
"640 Kilobyte ought to be enough for anybody."
Bill Gates, 1981
-
12-03-2017, 22:18 #10
AW: PHP unter NodeJs via ExpressJS nutzen
Muss das .cgi nicht vor das .static? Aber wenn da ein 404er kommt, heißt das, das deine PHP-Dateien gar nicht gefudnen werden. Also irgendeine Pfadangabe falsch ist.
-
03-04-2017, 09:47 #11
AW: PHP unter NodeJs via ExpressJS nutzen
Oha, das kommt jetzt ein wenig unerwartet, da ich schon länger nix mehr mit nodejs gemacht habe.
Aber was ich sehe, die Reihenfolge ist falsch und de Befehl heißt app.all().
Also dasapp.use(php.cgi('./src/client/')); // ist das hier richtig ?
ist flasch.
Richtig :app.all(/.+\.php$", php.cgi("./phpdocs"))
Heist soviel wie alle Dateien die mit .php enden und im Ordner phpdocs liegen werden von php.cgi ausgeführt.
Erst danach darfst du den BodyParser aufrufen.
Bei einem Windows System kann es hier zu Problemen führen. Native Module also welche die in c oder php geschrieben sind buggen rum.
Zitat von alphakanal
Bsp:
app.use("/styles", express.static(__dirname + "/css"));
Dein Browser findet die css Dateien nun unter /styles statt /css.
Zitat von alphakanal
Ähnliche Themen
-
expressjs response zu JqueryAjax will nicht
Von xorg1990 im Forum AjaxAntworten: 4Letzter Beitrag: 01-09-2015, 21:22 -
[FRAGE] nodejs Mongoskin ergebnis ausgeben
Von m1xm im Forum JavaScriptAntworten: 17Letzter Beitrag: 15-03-2015, 14:15 -
wieder mal ein Problem mit audiolib.js in NodeJS
Von xorg1990 im Forum JavaScriptAntworten: 31Letzter Beitrag: 06-10-2014, 17:16 -
Stdin Nodejs
Von xorg1990 im Forum JavaScriptAntworten: 6Letzter Beitrag: 03-02-2014, 00:07 -
NodeJs Mysql
Von gentleben im Forum Serverseitige ProgrammierungAntworten: 3Letzter Beitrag: 04-10-2012, 06:53
Lesezeichen