//poorman.php
<?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(".\R\R-3.1.3\bin\Rscript .\R\R-3.1.3\bin\my_rscript.R $N");
// return image tag
$nocache = rand();
echo("<img src='temp.png?$nocache' />");
}
?>
//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()
Это простая программа, в которой r-скрипт включен в php и запускается в localhost. Но я хотел запустить этот код на сервере Linux, так как это возможно, кто-нибудь может объяснить мне, пожалуйста ..?
Debian или Ubuntu Сначала установите R:
sudo apt-get update
sudo apt-get install r-base
Тогда вы получили R на вашем сервере.
Напишите свой R скрипт new.r
Затем выполните shell_exec('Rscript new.r');
Как насчет передачи параметра в R?
Ссылаться на Как я могу прочитать параметры командной строки из сценария R?
Содержание new.r:
options(echo=FALSE)
args <- commandArgs(trailingOnly = TRUE)
print(args)
shell_exec('Rscript new.r Hello');
вернусь:
[1] "Hello"
Других решений пока нет …