12
votes

Utiliser R avec Apache & PHP

Y a-t-il de toute façon pour exécuter des scripts r via Apache et PHP? J'aimerais pouvoir passer des variables de PHP à R.

Quelqu'un a-t-il fait quelque chose comme ça?

essentiellement, j'aimerais savoir s'il existe une méthode de passage de variables de PHP à R sur un serveur Apache.


0 commentaires

8 Réponses :


7
votes

Voir le R-FAQ :

Deux projets utilisent PHP pour fournir une interface Web à R. r_php_online par Steve Chen (Bien que ce n'est pas clair si ce projet est toujours actif) est quelque peu similaire à ce qui précède RCGI et RWEB. R-php est activement développé par Alfredo Pontillo et Angelo Mineo et fournit à la fois un Interface Web sur R et un ensemble d'analyses pré-spécifiées qui n'ont pas besoin d'entrée de code R.

et ce papier: Utilisation de R via PHP à des fins pédagogiques: R-PHP < / p>


1 commentaires

Ce projet fournit des capacités complètes R, ce n'est pas ce que je cherche. Je cherche quelque chose qui peut faciliter la remise des variables de PHP à R et R sur la sortie PHP sur un serveur Apache.



2
votes

Une autre option est eerve . Il vous permet d'appeler R de n'importe quelle langue prenant en charge les sockets TCP.


2 commentaires

Pas entièrement - vous avez également besoin d'un client qui parle le protocole Raerve. Simon nous a donné des clients Java et C ++ et afaik rien n'existe pour PHP. Cela dit, la Raerve est très utile et plutôt sous-appréciée.


Cela fait partie du problème - je ne connais pas Java. Sinon, ce serait probablement ma solution.



6
votes

Personnellement, nous avons utilisé l'interface de lot r cmd sur R pour y parvenir. Ce n'est pas très élégant, mais nous avons essentiellement des données de collage utilisateur dans une forme qui est transmise à PHP qui génère un fichier .r avec quelque chose

x = c (1,2,3,4); Dev.off (); Terrain (x);

Ensuite, nous obtenons PHP pour faire un «lot r cmd» exécuté

Dans le répertoire, vous devez alors obtenir des fichiers RPLots.ps qui peuvent être servis au client. De même, vous pouvez utiliser la fonction JPEG () pour renvoyer une image JPEG du graphique qui peut ensuite être affichée sur la page Web PHP Retours.

pas élégant du tout, mais cela fonctionne pour nous.


1 commentaires

Merci pour la réponse Dangerstat. Ce n'était pas la meilleure solution, mais donc le choisi. Dans un autre forum, j'ai trouvé deux options beaucoup plus agréables à mes besoins.



2
votes

Oui, R dans MediaWiki atteint cela assez joliment, et c'est une source ouverte alors Vous pouvez voir comment ils l'ont fait.

J'ai beaucoup joué avec la source moi-même, c'est vraiment simple et je ne devrais pas vous prendre longtemps pour l'adapter.

Bien sûr, vous ne pouvez pas l'utiliser comme si vous envisagez d'utiliser MediaWiki sur votre serveur. Aussi, faites attention à la sécurité.


1 commentaires

Cela semble certainement intéressant ... Je n'arrive pas à l'aider à travailler sur aucun des serveurs où j'ai accès à :(



3
votes

réponses d'ailleurs:

  1. RABACHE semble être pertinent: http://biostat.mc.vanderbilt.edu / RABACHE / . Il intègre R avec une servage Web sous la forme d'un module Apache. Il est disponible en tant qu'image VMware, vous pouvez donc la tester en douceur. Jeroen Ooms a développé des webapps étonnants basés sur Radache: http://www.stat.ucla.edu/ ~ Jeroen /

  2. Une autre solution pour Integrationg PHP, Apache et RI peuvent utiliser l'une des solutions de service Web r, telles que STATConnws ou RSOAP. Cela présente l'avantage de pouvoir séparer plus tard simplement le serveur Web et l'ordinateur exécutant R. Le surcharge de calcul ne doit pas être trop grand.


1 commentaires

... et assurez-vous que vous avez BREW BREW Installation de package - vous pouvez passer le code R dans les <% et %> étiquettes.



4
votes

Raerve a maintenant la prise en charge de PHP Vous pouvez trouver plus d'informations à: http: // code. google.com/p/rserve-php/


1 commentaires

Ceci est en plus du commentaire de Mark



-1
votes

une manière très simple

Vous pouvez passer des variables à l'aide de l'argument

Chaque fois EXEC ("RScript Yourrscript.R") Vous passez des arguments dans ce

Par exemple

EXEC ("RScript Yourrscript.r arg1 arg2 arg3")

Ensuite, votrerscript peut charger ces agres en utilisant args <- Commandargs ()

J'espère que c'est utile ~


0 commentaires

3
votes

Voici une bibliothèque PHP qui pourrait aider:

https://github.com/kachkaev/ php-r xxx

Ceci va sortir: xxx

La bibliothèque est également disponible comme Symfony2 Bundle .


0 commentaires