Lancer un programme R avec php

Fermé
marys - 11 janv. 2008 à 13:24
keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 - 10 mars 2012 à 17:54
Bonjour,

Je souhaite lancer une commande R avec php.
2 étapes sont à réaliser:

1) lancer l'exécutable R.exe
2) lancer une commande R exemple:source("test.R")

Pouvez vous m'aider svp.

j'ai déjà testé la commande system et exec
A voir également:

5 réponses

keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 5
22 avril 2008 à 14:03
Ca y est j'ai trouvé !! C'est ultra simple !
Faut mettre les variables d'environnement !

Puis tu lance la commande suivante dans ton script PHP:
exec("Rcmd BATCH Ton_Super_Programme.R " );

tu peut egalement faire:
exec("R CMD BATCH Ton_Super_Programme.R " );

et voilà !
1
Merci,
çà fonctionne !
0
Rweb
0
Bonjour keujmat pourrais-tu préciser à propos des varialbes d'environnement ??? Que dois-je faire pour que le exec marche correctement ?? Merci d'avance
0
belzebate Messages postés 16 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 17 février 2012
6 janv. 2012 à 16:40
j'ai pas bien compris peux tu m'expliquer problème des variables d'environnements. Je dois aussi éxecuter un programme R en PHP ...
0
keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 5
10 mars 2012 à 17:54
Les variables d'environnement sont une autre histoire ... => faire une recherche
Elle permette à ta machine de savoir ou sont tes logiciel par exemple (ici c'est surement les variable d'env pour R)
++
0
Bonjour,
J'ai également le même problème!
Avez vous trouvé une solution?
merci
0
keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 5
15 avril 2008 à 10:14
Question très intéressante et cruciale pour l'avancement de mon projet.
J'ai également tester la commande system et exec mais cela ne fonctionne pas. Peut être sous linux il y aurait plus de liberté...
Une autre solution consiste a programmer en java un petit programme qui fait appel à R. (http://lutinj2r.labs.libre-entreprise.org/installation.html) Mais l'utilisation du packetage pour ce dernier est incompréhensible pour ma part pour l'instant. J'arrive à rien faire fonctionner.
Ca serai plus simple dans l'idée car il y aurai plus qu'a faire appel au programme java qui sera sous la forme d'un .jar à partir de ta page PHP.
Je suis preneur pour toute lumière à ce sujet !!
0
keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 5
15 avril 2008 à 12:02
A partir de PHP 4.2 normalement on peut utilisé cette fonction "pcntl_exec" (https://www.php.net/manual/fr/function.pcntl-exec.php ,qui devrait répondre à notre intérogation mais ne fonctionne pas chez moi :"Fatal error: Call to undefined function pcntl_exec()"
Pourtant je suis sur que ca peut etre la solution !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
keujmat Messages postés 32 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 30 mai 2013 5
18 avril 2008 à 14:38
Pour effectuer des commandes R depuis PHP (Sous Windows):

A partir de PHP on va utiliser « exec() » pour lancer un programme java qui sous forme de jar. Ce programme java fait appel au programme R et lui dit de lire un script écrit en R qui sera exécuté.
Le plus dur dans l’histoire est d’ajouter les éléments permettant à JAVA d’interagir avec R. Pour cela il vous faudra tout d’abord installer MSYS et MinGW qui va vous permettre d’avoir un Shell linux sur votre PC afin de pouvoir compiler et utiliser des éléments essentiels.
Pour cela je conseille de voir la page suivante :
http://www.unite-video.com/phpbb/viewtopic.php?p=61514
Vous n’avez pas besoin de GTK+ mais si cela vous intéresse en plus…
Ensuite vous devez télécharger JRI_0.4-0.tar.gz sur ce site : http://www.rforge.net/JRI/ .
Vous le décompressez et grâce à votre Shell linux vous pouvez lancer les commandes suivantes :
sh configure.win
make

Un fichier nommé jri.dll est crée. Il vous faut le copier et le coller dans la librairie de R . Par exemple chez moi dans le dossier : C:\Program Files\R\R-2.6.2\library .
Un fichier jri.jar est créé également. Il vous faut exporter cette librairie dans éclipse. Pour cela vous faîtes un clic droit sur votre projet et cliquer sur «build path » puis « add external archive ». Et là vous importer le fichier JRI.jar.

Ensuite Il vous faut régler les variables d’environnement :
Clic droit sur poste de travail -> Propriété -> Avancé -> Variables d’environnement

Il vous faut rajouter au PATH : Le chemin d’accès du dossier de R
Exemple-> ; C:\Program Files\R\R-2.6.2
Le chemin d’accès à la librairie de R
Exemple-> ; C:\Program Files\R\R-2.6.2\library
Ou vous ajouter de nouvelles variables :
R_HOME : C:\Program Files\R\R-2.6.2
LD_LIBRARY_PATH : C:\R_HOME\library

Si vous n’êtes pas sur comme moi vous mettez les deux ca marchera forcement !

Pour voir si tout cela fonctionne il y a plus qu’a copié le code de rtest qui ce trouve dans le dossier exemple et le tester sur éclipse !

Voila ensuite mon script java pour appeler le script R :

//Création d’une passerelle vers R
Rengine re=new Rengine(args, false, new TextConsole());
System.out.println("Rengine crée, attente de R");
// the engine creates R is a new thread, so we should wait until it's ready
if (!re.waitForR())
{
System.out.println("Cannot load R");
return;
}

String curDir = System.getProperty("user.dir");
// Pour l’execution du script dans R :
String matrice = "source('Chemin_Du_Script_R', echo=T)";
//J’envoie matrice à une instance de R :
re.eval(matrice);


ATTENTION Pour le Chemin du script,exemple :
C:\\\\Program Files\\\\EasyPHP


Référence :

http://www.unite-video.com/phpbb/viewtopic.php?p=61514
http://alnitak.u-strasbg.fr/wikili/index.php/JRI
http://www.rforge.net/JRI/
http://www.mingw.org/


Une autre méthode soit disant plus simple mais que je n’est pas réussi à installer :
http://lutinj2r.labs.libre-entreprise.org/installation.html
0