[R-es] php-R

Mario Rodriguez riotorto en yahoo.com
Mie Ago 5 11:12:43 CEST 2015



El 04/08/15 a las 20:19, Jose Manuel Veiga del Baño escribió:
> Estimados colegas:
>
> Estoy tratando de ejecutar varios scripts de R a través de php. Para ello
> estoy utilizando el siguiente código pero me sale:
>
>    El URL solicitado no ha sido localizado en este servidor. El URL de
> la página que lo refirió[1] parece ser equivocado u obsoleto. Por favor
> comunique al autor de esa página[1] acerca del error.
>    Este código que está sacado de internet indica la dificultad para
> ejecutarlo a través de php por velocidad y varios usuarios al mismo
> momento. No se si alguien tiene experiencia en este tipo de usos php-R y me
> puede ayudar.
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
> Codigo 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("C:\Program Files\R\R-3.2.0\bin\x64\my_rscript.R $N");

Hola,

Por motivos de seguridad, un servidor web solo tiene acceso a los 
ficheros de un subárbol de la estructura de directorios del sistema 
operativo.

Así, un script php ejecutado en este entorno difícilmente podría acceder 
a la carpeta 'Program Files'. Mi sugerencia iría por guardar los scripts 
dentro del subárbol al que tenga acceso el servidor (Apache?) o 
instalarlos como un paquete de R.

Si trabajas con Apache, quizás haya alguna manera de indicarle a qué 
carpetas adicionales le das permiso de acceso. Yo no lo sé, pero podrías 
investigarlo.

Otra cosa. Cuando ejecutas la instrucción exec, no indicas qué programa 
tiene que ejecutar el fichero my_rscript.R y quizás el SO no tenga forma 
de saberlo. Yo le  echaría un vistazo a cómo ejecutar R desde el 
terminal del SO y qué parámetros tengo a mi disposición.

--
Mario



Más información sobre la lista de distribución R-help-es