Ich habe folgendes Problem:
Ich würde gerne von PHP aus ein R Skript aufrufen. Dieses erstellten dann einen Graph, und den wiederum will ich später dem Benutzer anzeigen. Soweit, so gut.
Wenn ich das entsprechende R-Skript über die Shell mit "R --file=script.r" aufrufe, klappt alles wunderbar. Wenn ich genau den gleichen Befehl in PHP über "exec('R --file=script.r')" aufrufe, klappt es leider nur fast. Anscheinend wird das Script aufgerufen, und sogar ein Ausgabebild erstellt, dieses ist nur leider genau 0 Byte groß.
Jetzt weiß ich leider weder, was schief läuft, noch, wie ich das debuggen kann, denn in PHP gibt es keine Fehlermeldungen, was ja auch logisch ist, denn offensichtlich wird das Script ja aufgerufen, es verhält sich nur anders, als wenn ich den Befehl direkt über die Shell eingebe.
Spitze wäre es natürlich, wenn mir jemand direkt das Problem lösen kann, aber ich wäre auch schon sehr zufrieden, wenn mir einer sagt, wie ich sehen kann was auf der Shell bzw. im R-Interpreter nach dem Aufruf abläuft.
Also, wie gesagt der entscheidene PHP-Code ist:
vielleicht hier noch das R-Script (man weiß ja nie, obwohl es wie gesagt, funktioniert wenn ich es direkt von der Shell aus aufrufe):
Ich würde gerne von PHP aus ein R Skript aufrufen. Dieses erstellten dann einen Graph, und den wiederum will ich später dem Benutzer anzeigen. Soweit, so gut.
Wenn ich das entsprechende R-Skript über die Shell mit "R --file=script.r" aufrufe, klappt alles wunderbar. Wenn ich genau den gleichen Befehl in PHP über "exec('R --file=script.r')" aufrufe, klappt es leider nur fast. Anscheinend wird das Script aufgerufen, und sogar ein Ausgabebild erstellt, dieses ist nur leider genau 0 Byte groß.
Jetzt weiß ich leider weder, was schief läuft, noch, wie ich das debuggen kann, denn in PHP gibt es keine Fehlermeldungen, was ja auch logisch ist, denn offensichtlich wird das Script ja aufgerufen, es verhält sich nur anders, als wenn ich den Befehl direkt über die Shell eingebe.
Spitze wäre es natürlich, wenn mir jemand direkt das Problem lösen kann, aber ich wäre auch schon sehr zufrieden, wenn mir einer sagt, wie ich sehen kann was auf der Shell bzw. im R-Interpreter nach dem Aufruf abläuft.
Also, wie gesagt der entscheidene PHP-Code ist:
PHP-Code:
exec('R --file=script.r');
PHP-Code:
t<-read.table("/opt/lampp/htdocs/TAVAC/tralala.txt",sep="\t")
m<-as.matrix(t)
m<-m[-1:0,-3:0]
mode(m)<-'numeric'
require(sma)
col.names=t[1,-3:0]
col.names.format=c()
for (z in c(1:(dim(col.names)[2])))
{
l=col.names[z]
l=as.character(l[,1])
col.names.format=c(col.names.format,l)
}
jpeg(filename = "out0.jpeg",width = 800, height = 800)
plot.mat(m,rlabels=t[-1:0,1],clabels=col.names.format)
dev.off()
Kommentar