R embedded inside Apache
HTML C Shell Makefile Perl Roff Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
debian Update ChangeLog and bump version Oct 26, 2017
libapreq2 More Housecleaning Jul 21, 2011
m4 my attempts at fixing this on the httpd24 scl Mar 6, 2015
rpm bump version everywhere Oct 26, 2017
test Receive bin large payload (#49) Oct 26, 2017
tools Improved "make itest" target. Dec 18, 2013
ChangeLog Update ChangeLog and bump version Oct 26, 2017
INSTALL Housecleaning. Jul 21, 2011
LICENSE Housecleaning. Jul 21, 2011
Makefile.am Making all output buffered Aug 3, 2011
Makefile.in my attempts at fixing this on the httpd24 scl Mar 6, 2015
NOTICE Housecleaning. Jul 21, 2011
README.md Change linkes to http://rapache.net/ Sep 14, 2015
configure my attempts at fixing this on the httpd24 scl Mar 6, 2015
configure.in my attempts at fixing this on the httpd24 scl Mar 6, 2015
mod_R.c bump version everywhere Oct 26, 2017


           The Rapache Project

What is it?

Rapache is a project dedicated to embedding the R interpreter inside the Apache 2.0 (and beyond) web server. It's composed of two parts:

mod_R: the Apache 2.0 module that implements the glue to load the R interpreter.

libapreq 2.0.4: an Apache sponsored project for parsing request input. If you don't want to compile and install this version, then you can specify which libapreq2 library to use during configuration.

The Latest Version

Details of the latest version can be found at the R/Apache project page:



This release has been tested under Debian Linux with Apache 2.2.4, R 2.5.1, and libapreq 2.0.4. Apache2 MUST be compiled with the prefork MPM to compile mod_R. Also, R must have been compiled with the --enable-R-shlib configure flag.


The following is the preferred way to compile and install rapache:

$ ./configure
$ make
$ make install

configure will try to find the needed programs to compile rapache, but if it fails to locate them or if you have installed the prerequisites in non-standard places, then you can specify their locations with the following flags:



Add something similar to this to the apache config file:

LoadModule R_module /path/to/mod_R.so

# Output R errors and warnings to the browser

# Displays information about rapache and R
<Location /RApacheInfo>
    SetHandler r-info

# Process all files under /path/to/brew/scripts with
# package brew and function brew
<Directory /path/to/brew/scripts>
    SetHandler r-script
    RHandler brew::brew

# This url will run the file /path/to/r/script.R
<Location /made/up/url/name>
    SetHandler r-handler
    RFileHandler /path/to/r/script.R

Also, libR.so MUST be found in the shared library path as it is linked to by mod_R, RApache and the rest of the packages containing shared libraries. You can either set LD_LIBRARY_PATH like this:

 $ export LD_LIBRARY_PATH=`/path/to/R RHOME`/lib

or add that path to /etc/ld.so.conf and then run ldconfig.

NOTE: the latest apache2 debian packages cause the web server to run in a very reduced environment, thus one is unable to set LD_LIBRARY_PATH before calling /etc/init.d/apache2. One option is to actually edit that file and add the LD_LIBRARY_PATH explicitly. Another is to use the apache2ctl scripts which are also bundled with the debian packages. Or you can add it to /etc/ld.so.conf.


Forthcoming. See http://rapache.net/manual.html for ongoing updates.


The R/Apache source code is licensed under the Apache License Version 2.0. Please see the file called LICENSE.