R语言好像不能处理HTTP请求,但是有国外的一些人写了一个Apache的扩展,使R语言可以像PHP一样,处理请求,响应数据等。
首先我们去网上下载R语言的Apache扩展,我已经下载好了。
R Apache扩展下载地址
具体下载目录在 /2012年资料/11月/27日/Ubuntu Server下搭建R语言服务器RApache
我安装RApache扩展的环境是Ubuntu Server版,64位
如果大家没有安装R语言开发环境的话,先安装R语言的开发环境
apt-get install r-base-core
安装RApache依赖的一些库
apt-get install r-base-dev apache2-mpm-prefork apache2-prefork-dev
apt-get install libapreq2
apt-get install libtool
然后大家把上面下载的RApache扩展解压,进入到jeffreyhorner-rapache-7b988ac目录下,
然后执行./configure
make
make install
安装成功后,我们可以在 /usr/lib/apache2/modules/目录下看到一个mod_R.so文件,这个就是R语言的Apache扩展。
到这里已经成功一半了,接下来就是Apache的配置问题了
打开Apache下面的httpd.conf,加上下面这句配置
LoadModule R_module /usr/lib/apache2/modules/mod_R.so
接下来就是写R文件了,我们随便在一个目录下建立一个R文件,我这里叫test.R,里面写一个方法叫test_fn(这个可以随便写).
test_fn<-function(){
print('Hello World');
}
然后我们在命令行输入R,这样就进入R界面了,RApache虽然可以处理单个R文件,但是我这里还是像opencpu一样,把R语言打包。
进入R界面后,执行以下函数:
package.skeleton(name=包名 code_files=要打包的文件名)
我这里输入的是
package.skeleton(name='test', code_files='test.R')
执行成功后,会生成一个test目录,进入目录,里面有一些生成的文件和文件夹,
我们主要要操作的就是DESCRIPTION,NAMESPACE,还man目录下面的test.Rd
我们先进入man目录下面,除了test_fn.Rd,其它全部删除。