Overview

The following guide will show how to install ProcessMaker on Windows using WAMPServer. This guide also applies to other Windows-Apache-MySQL-PHP stacks, such as XAMPP or MoWES. However, it is recommended to use WAMPServer because of its compatibility with ProcessMaker and similar software configuration with the LAMP stack.

Requirements

Note: Please check our Supported Stacks page before installing. This page provides detailed information on the operating system, database, and application server combinations that have been tested and certified by ProcessMaker.

Installing ProcessMaker

Download the most recent ProcessMaker tarball from http://sourceforge.net/projects/processmaker/files/ProcessMaker. Move the extracted folder to: c:/opt/processmaker and keep note of this location.

Read more about installing ProcessMaker at ProcessMaker Generic Installation.

Configure Apache

The WAMPServer httpd.conf file is located at c:/wamp/bin/apache/Apache.X.v.v/conf/httpd.conf. Make the following changes:

listen *:80

Uncomment the following modules (remove the # symbol at the beginning of each line):

LoadModule alias_module modules/mod_alias.so
LoadModule alias_deflate modules/mod_deflate.so
LoadModule alias_expires modules/mod_expires.so
LoadModule alias_rewrite modules/mod_rewrite.so
LoadModule alias_vhost_alias modules/mod_vhost_alias.so

Note: If using Apache 2.4.X uncomment the following modules (remove the # symbol at the beginning of each line):

LoadModule alias_module modules/mod_alias.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule headers_module modules/mod_headers.so
LoadModule filter_module modules/mod_filter.so

At the bottom of the file, locate the #Virtual hosts line and uncomment this line:

Include conf/extra/httpd/vhosts.conf

Adding ProcessMaker to Apache

The next step is to add the ProcessMaker location to Apache. Open c:/wamp/bin/apache/Apache.X.v.v/conf/extra/vhost.conf and add the following at the bottom of the file:

#ProcessMaker directives
<VirtualHost your_ip_address >
   ServerName "your_processmaker_domain"
   DocumentRoot "C:/opt/processmaker/workflow/public_html"
   DirectoryIndex index.html index.php
   <Directory  "c:/opt/processmaker/workflow/public_html">
      AddDefaultCharset UTF-8
      AllowOverRide none
      Options FollowSymlinks
      Order allow,deny
      Allow from all
      RewriteEngine on
      RewriteRule ^.*/(.*)$ sysGeneric.php [NC,L]
      ExpiresActive On
      ExpiresDefault "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/jpg "access plus 1 day"
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      AddOutputFilterByType DEFLATE text/html
   </Directory>
 </VirtualHost>

Note: If using Apache 2.4.X,please use the following configuration:

#ProcessMaker directives
<VirtualHost your_ip_address >
   ServerName "your_processmaker_domain"
   DocumentRoot "c:/opt/processmaker/workflow/public_html"
   DirectoryIndex index.html index.php
   <Directory  "c:/opt/processmaker/workflow/public_html">
      AddDefaultCharset UTF-8
      AllowOverRide none
      Options FollowSymlinks
      Require all granted
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ /app.php [QSA,L]
      ExpiresActive On
      ExpiresDefault "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/jpg "access plus 1 day"
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      AddOutputFilterByType DEFLATE text/html
   </Directory>
 </VirtualHost>

Replace your_ip_address with the IP number or domain name of the server running ProcessMaker. If only planning on running and accessing ProcessMaker on your local machine, then use the IP address "127.0.0.1". If using ProcessMaker on a machine whose IP address might change (such as a machine whose IP address is assigned with DHCP), then use "*", which represents any IP address. If not using the standard port 80, then it is necessary to also specify the port number.

If your DNS or hosts file has a defined domain for ProcessMaker, then use that domain for your_processmaker_domain. Otherwise, use the same IP address for your_processmaker_domain as was used for your_ip_address.

More instruction are available at Apache Configuration.

Configure PHP

Edit the php.ini configuration file with a plain text editor like Notepad or Notepad++.

Uncomment the following lines to enable the LDAP and SOAP extensions:

extension=php_ldap.dll
extension=php_soap.dll

Each ProcessMaker session needs a minimum of 120MB RAM to run properly, so set the memory_limit to 120M or greater:

memory_limit = 120M

In order to upload Input Documents, upgrade ProcessMaker and add plugins and languages, file_uploads need to be enabled:

file_uploads = On

ProcessMaker needs to use PHP's short opening tags:

short_open_tag = On

If planning on uploading large Input Documents while running processes, the max_post_size and upload_max_filesize should be increased to more than the default 2MB. For instance, if planning on uploading files as large as 16MB, then:

max_post_size = 16M
upload_max_filesize = 16M

Now, either restart Apache or reboot for the new settings to take effect.

Restart the server and install ProcessMaker

Save all files and restart WAMPServer by clicking on the "W" logo and choosing "Restart all services"

After restarting the WAMPServer, enter your ProcessMaker address in your web browser. Then, follow the ProcessMaker Configuration instructions to setup ProcessMaker on your server and login.