RReportGenerator on the Web
While the original RReportGenerator is/was designed as stand-alone, now we've developed a version that is available through a web interface. This should allow users to benefit of servers that are much more powerful, in particular if the applications are memory consuming.
http://lbgi.igbmc.fr/rreportgenerator
Contents
To run RReportGenerator on the Web you need
- A http web server (we use Apache)
- Access to R, latex and pdflatex
- for Linux we use which R , which latex and which pdflatex
- for Windows we search in the directory defined as the environment variable ProgramFiles
- The unique file rrg.exe
- It contains all what you need (=rrg.tcl + rrg_web.tcl + tcl runtime library + index.html + Logos + test scenarios and indata)
- At first run it extracts automatically the logos, index.html and creates the Web directory where the Scenarios, Indata and Outdata will be stored
Installation on Linux
- we need a directory accessible by the web server. We call it /var/www/rreportgenerator
#suppose www-data is the user running the web server
sudo su - www-data
cd /var/www
mv rreportgenerator rreportgenerator.OLD
mkdir rreportgenerator
cd rreportgenerator
wget -O rrg.exe "http://lbgi.igbmc.fr/rreportgenerator/rrg.distrib"
# please notice the '.distrib' extension (it's the stable version, and the .exe version might be forbidden by the firewalls)
- rrg.exe, index.html and the logos (with your LocalLogo.png) have to be in that directory (if not in the same directory you can use unix links to simulate it)
- the sub directory called Web contains the scenarios, input and ouput files for all projects. (use links if they are elsewhere)
We can now use the url http://http_server/rreportgenerator/rrg.exe
If this is done you can even use the url http://http_server/rreportgenerator
- To allow the execution of the rrg.exe as cgi-bin you need following line in the apache configuration file
ScriptAliasMatch ^/rreportgenerator/rrg.exe /real/path/to/the/directory/rreportgenerator/rrg.exe
- Notice : to allow the url http://http_server/rreportgenerator
- do it in the apache configuration or ...
- use the file index.html in rreportgenerator with the redirection to rrg.exe
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="REFRESH" content="0;url=./rrg.exe?commande=WebForm"> </head> </html>
Write permissions
For the Web version
The user running the http server needs to have write permissions to
- /var/www/rreportgenerator/Web where he creates
- /var/www/rreportgenerator/Web/web.log
- /var/www/rreportgenerator/Web/RRGDataForWeb containing the temporary files and RRG_config (can be modified)
- /var/www/rreportgenerator/Web/ProjectX created when the user creates a new project ProjectX
For the standalone version
When a user runs rrg.exe he creates
- ~user/RRGConfiguration containing RRG_config and the temporary files
- the Output files in the directory defined as Output Folder
How it works
The main tcl program rrg.tcl (mostly code by Luc Moulinier) remains nearly unchanged. We replaced the call to 'main' with following lines :
global env
if {! [info exists env(QUERY_STRING)] && $argv=={}} {
package require Tk
main
} else {
source "[file dirname [info script]]/rrg_web.tcl"
MainWeb
}
- If launched as local program, rrg.tcl requires the package Tk and runs normally
- If launched by the web server, rrg.tcl sources the additional file rrg_web.tcl (code written by Raymond Ripp) and sends a html page to the web browser.
- Any action from the user through his web browser will rerun rrg.tcl, the arguments are always transfered within the web page and users queries, avoiding use of session variables.
- The user can switch between existing projects (if he knows the password) or create a new project.
- Within a project he can select, delete or create scenarios and input files.
- After selection of a scenario and input file the user can run RReportGenarator. This lauches the normal rrg.tcl from Luc and stores the result in the OutputDir of the project.
- These output files can be shown, downloaded and deleted by any user knowing the password of the project.