diff --git a/Deployment.md b/Deployment.md new file mode 100644 index 00000000..2c0eb2fe --- /dev/null +++ b/Deployment.md @@ -0,0 +1,125 @@ +EWF Deployment +============== + +##Apache on Windows +###Apache Install + + - Check the correct version (Win 32 or Win64) + - Apache Version:  Apache 2.4.4 + - Windows: http://www.apachelounge.com/download/ + +###Deploying EWF CGI + +####CGI overview +> A new process is started for each HTTP request. So if there are N request to the same CGI +> program, the code of the CGI program is loaded into memory N times. +> When a CGI program finished handling a request,  the program terminates + +1. Build EWF application. + + ec ­config app.ecf ­target app_cgi ­finalize ­c_compile ­project_path . + Note: change app.ecf and target app_cgi  based on your own configuration. +2. Copy the generated exe file and the www content. + + ``` + Copy the app.exe and the folder www into a folder served by apache2, for example under + /htdocs +  = path to your apache installation + Edit httpd.conf under c://conf + DocumentRoot "c://htdocs" + /htdocs"> + AllowOverride All -- + Require all granted -- this is required in Apache 2.4.4 + + ``` + +3. Check that you have the following modules enabled. + + ``` + LoadModule cgi_module modules/mod_cgi.so + LoadModule rewrite_module modules/mod_rewrite.so + ``` + +*Tip:* +To check the syntax of your httpd.conf file. From command line run the following. + + $>httpd - t + +####.htaccess CGI +http://perishablepress.com/stupid­htaccess­trics/ + + Options +ExecCGI +Includes +FollowSymLinks ­Indexes + AddHandler cgi­script exe + +   RewriteEngine on +   RewriteRule ^$ $service [L] + RewriteCond %{REQUEST_FILENAME} !­f + RewriteCond %{REQUEST_FILENAME} !­d + RewriteCond %{REQUEST_URI} !$service +   RewriteRule ^(.*)$ $service/$1 + RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] + FastCGI allows a single, long­running process to handle more than one user request while keeping close to +> the CGI programming model, retaining the simplicity while eliminating the overhead of creating a new +> process for each request. Unlike converting an application to a web server plug­in, FastCGI applications +> remain independent of the web server. + +1. Build EWF application + + ec ­config app.ecf ­target app_fcgi ­finalize ­c_compile ­project_path . + Note: change app.ecf and target app_fcgi  based on your own configuration. + +2. Copy the generated exe file and the www content + + + Copy the app.exe and the folder "www"  into a folder served by apache2, for example under + /htdocs. +  = path to your apache installation + Edit httpd.conf under c://conf + + DocumentRoot "c://htdocs" + /htdocs"> + AllowOverride All -- + Require all granted -- this is required in Apache 2.4.4 + + +Check that you have the following modules enabled. + + LoadModule rewrite_module modules/mod_rewrite.so + LoadModule fcgid_module modules/mod_fcgid.so + +By default Apache does not comes with fcgid module, so you will need to +download it, and put the module under Apache2/modules + +####.htaccess FCGI +http://perishablepress.com/stupid­htaccess­tricks/ + + Options +ExecCGI +Includes +FollowSymLinks ­Indexes + + AddHandler fcgid­script .ews + FcgidWrapper $FULL_PATH/$service .ews + + +   RewriteEngine on +   RewriteBase / +   RewriteRule ^$ service.ews [L] +   RewriteCond %{REQUEST_FILENAME} !­f +   RewriteCond %{REQUEST_FILENAME} !­d +   RewriteCond %{REQUEST_URI} !=/favicon.ico +   RewriteCond %{REQUEST_URI} !service.ews +   RewriteRule ^(.*)$ service.ews/$1  RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] + + +Replace $service with the name of your executable $service, for example app_service.exe +You will need to create an service.ews file, this file will be located at the same place where you +copy your app service executable.