PHPのlocalhostでRのコードを実行しようとしています。私はこの例(https://www.r-bloggers.com/integrating-php-and-r/)に従った。RをPHPで接続する
<?php
// poorman.php
echo "<form action='poorman.php' method='get'>";
echo "Number values to generate: <input type='text' name='N' />";
echo "<input type='submit' />";
echo "</form>";
if(isset($_GET['N']))
{
$N = $_GET['N'];
// execute R script from shell
// this will save a plot at temp.png to the filesystem
exec("Rscript my_rscript.R $N");
// return image tag
$nocache = rand();
echo("<img src='temp.png?$nocache' />");
}
?>
and the R script…
# my_rscript.R
args <- commandArgs(TRUE)
N <- args[1]
x <- rnorm(N,0,1)
png(filename="temp.png", width=500, height=500)
hist(x, col="lightblue")
dev.off()
私は/ var/www/html/Rフォルダに両方のファイルを持っています。私はPHPファイルを実行したが、完全に行くが、私はそれは例のWeb画像と同じ表示されていない "N"の番号を提出する。
私はまた、rnorm()の分布を表示するためだけに実行しようとしましたが、私は同じ結果を持っています - >何もありません。
私は私の問題は、PHPでRをconecctingに私は(http://rapache.net/manual.html)インストールRapacheを試してみましたが、私は 「sudoを到達したときのapache2-preforkの-devののapache2-MPM-preforkのをlibapreq2-devのR-ベースをインストールapt-getのだと思い-dev " 次のメッセージが表示されました - パッケージapache2-prefork-devを見つけられませんでした
すべての解決方法はありますか?
ジョージ
:そう、私にとって
は、適切な出力が得られ私はプログラミングを始めるので接続してください。 「あなたがRscriptを持っている可能性が最も高いOSとは異なる環境でApacheを実行している」と言ったときの意味は分かりません。私はubuntu 16.04を使用しています。また、あなたが言ったファイルはどこにありますか?私が達成したのは、同じフォルダに画像を保存して、PHPがそれを読むことができるようにすることでした。私は誰もが私が5年生の学校の少年のようにその例をどのように働かせるか説明できたことに感謝します。ありがとう。 –
PHPの 'exec()'行にRscriptのフルパスを追加するだけで解決しましたか? – Parfait
そうだと思います。私は両方のファイルを次のパス(/ var/www/html/machine)で "machine"というフォルダに入れておき、私のpoorman.phpファイルにexec()の部分を次のように書いています:exec( "/ var/www/html/machine/my_rscript.R $ N ");私はmy_srcriptを完全なパスに参加させ、それらの間にスペースを入れようとしました。私がRのtempでmy_rcript.Rを実行すると、このフォルダにPNGファイルが作成されますが、PHPからはできません。 –