ProcessMaker Generic Installation

From ProcessMaker
Jump to: navigation, search


Follow these instructions to install ProcessMaker 1.X on any server running Linux or UNIX or Windows (XP, Server 2003, Vista, 7, or Server 2008). To install ProcessMaker 2.0, see this page.



  • Apache 2.2.3 or greater with the following modules enabled:
    • deflate
    • expires
    • rewrite
    • vhost_alias
  • MySQL 4.1.20 or greater

     (If using ProcessMaker 1.8 or later or the Pentaho Reports plugin, MySQL 5.1.6 or later is required.)

  • PHP 5.1.6 or greater (but not PHP 5.3.X if using ProcessMaker 1.8 or earlier) with the following modules enabled:
    • mysql
    • xml
    • mbstring
    • mcrypt
    • soap (necessary if using web services)
    • ldap (necessary if integrating with LDAP or Active Directory)
    • gd (recommended if using Events)
    • curl (necessary for uploading/downloading files)
    • In addition, install PHP's command line interface (CLI) if planning on using Events, the Case Scheduler, workspace backup/restore, or developing plugins with the Gulliver Framework.


  • Mozilla Firefox (recommended) or Internet Explorer 7 or greater

Configuring PHP

Go to PHP's configuration file and set the following settings:

memory_limit = 80M
file_uploads = On
short_open_tag = On

If planning on uploading large Input Documents while running processes, the post_max_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:

post_max_size = 16M 
upload_max_filesize = 16M

If using ProcessMaker version 1.2-2552 or previous, turn on ASP tags:

asp_tags = On

If using a version of ProcessMaker before 1.0-1286, turn off magic quotes:

magic_quotes_gpc = Off

Make sure that the following modules are loaded in PHP: mbstring, gd, soap, curl, ldap, xml, mysql

The modules can be verified by issuing the following command from the command line:

php -m

or with the function phpinfo() in a web page.

After changing the PHP configuration, restart the Apache service.

Configuring MySQL

The MySQL "root" user should already have all the necessary privileges to setup the ProcessMaker databases. If planning on using a different MySQL user to set up the ProcessMaker databases, then use the following instructions to grant superuser privileges to another MySQL user.

Login to MySQL.

mysql -u root -p

Enter the root password for MySQL. If you haven't yet set a root password for MySQL, set one for better security:

mysqladmin -u root password PASSWORD

If you have forgotten the root password, see these instructions to reset it.

If unable to log into MySQL because there is no socket, then MySQL needs to be started as a service.

Once in MySQL, give the user which will be running ProcessMaker superuser privileges to create create and modify MySQL tables:

mysql> grant all on *.* to 'USER'@'localhost' identified by 'PASSWORD' with grant option;

Replace USER with the name of your MySQL user and PASSWORD with the password for that user. (If that user doesn't already exist, he/she will be automatically created with the above grant command.) If planning on running ProcessMaker on a different server than your MySQL server, then replace localhost with the domain name or IP address of the server where ProcessMaker will be located.

Exit MySQL:

mysql> exit;

Installing ProcessMaker

Download the latest stable ProcessMaker tarball from

The ProcessMaker code is compressed in tar.gz format and can be extracted using most compression tools, like the tar command in Linux/UNIX or WinRAR or 7-Zip in Windows. Extract the pmos-X.X-XXXX.tar.gz file in a directory where you wish to install ProcessMaker, such as the /opt/ directory in Linux/UNIX or C:\Program Files\ in Windows. Due to security reasons, do NOT install ProcessMaker in a directory which is publicly accessible to the internet, such as /var/www in Linux/UNIX or C:\Program Files\Apache\htdocs\ in Windows.

Decompress ProcessMaker in the /opt directory:

tar -C /opt -xzvf processmaker-1.X-X.tar.gz 

Use WinRAR or 7-Zip to extract the file pmos-X.X-XXXX.tar.gz in c:\Program Files\

This will create a new directory processmaker containing all the ProcessMaker files and directories.

Getting Code in Development

The ProcessMaker development team periodically releases beta versions of its code on SourceForge for public testing. However, to try out the ProcessMaker code as it is being developed (which is ONLY recommended for testing and debugging), download the source code from ProcessMaker's Subversion repository.


svn co svn://

Use TortoiseSVN to download the source code from svn://

NOTE: Currently, ProcessMaker is in the process of switching to Git to manage its code, which will have a web interface to manage and examine the source code. Please await future announcements.

Setting File Permissions

After decompressing the ProcessMaker code, several of the subdirectories need to be made world writable, so ProcessMaker can write to them.


cd /opt/processmaker
mkdir compiled shared  (if these directories don't already exist)
chmod 777 compiled shared
cd /opt/processmaker/workflow/engine/
chmod 777 config content/languages plugins xmlform js/labels

It is a good idea to change the owner of the ProcessMaker files to the user who runs Apache. The name of this user varies from distribution to distribution:

Red Hat/CentOS/Fedora:

chown -R apache:apache /opt/processmaker


chown -R www-data:www-data /opt/processmaker


chown -R wwwrun:www /opt/processmaker

Right click on the following folders, choose option: "Properties", on the window "Properties" uncheck the option "Read only"

C:\Program Files\processmaker\shared
C:\Program Files\processmaker\compiled
C:\Program Files\processmaker\workflow\engine\config\
C:\Program Files\processmaker\workflow\engine\content\languages\
C:\Program Files\processmaker\workflow\engine\js\labels\
C:\Program Files\processmaker\workflow\engine\plugins\
C:\Program Files\processmaker\workflow\engine\xmlform\

Apache Configuration

Edit the file processmaker-directory/etc/pmos.conf with a plain text editor (such as Notepad or Notepad++ in Windows or vim, nano or gedit in Linux/UNIX).

Modify the following virtual host definition to match your environment:

  # Please change the IP address with your server's IP address and
  # the ServerName with you own subdomain for ProcessMaker.
  NameVirtualHost your_ip_address
  #processmaker virtual host
  <VirtualHost your_ip_address >
    ServerName "your_processmaker_domain"
    DocumentRoot /opt/processmaker/workflow/public_html
    DirectoryIndex index.html index.php
    <Directory  "/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

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 "". 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 /etc/hosts 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.

If ProcessMaker is installed in a location other than /opt/processmaker/, then edit the paths to match where Processmaker is installed on your system.

For example, if running ProcessMaker on a Windows server at address on port 8080 with a domain at

  #processmaker virtual host
  <VirtualHost >
    ServerName ""
    DocumentRoot C:\Program Files\processmaker\workflow\public_html
    DirectoryIndex index.html index.php
    <Directory  "C:\Program Files\processmaker\workflow\public_html">

Note: It is also possible to define the virtual host for ProcessMaker directly in the Apache configuration by inserting the above VirtualHost definition in the general Apache configuration file, named httpd.conf.

Then, copy the pmos.conf file to the following directory, where it will automatically be loaded by the Apache web server:

Generic Linux/UNIX:
   Then issue the command: a2ensite pmos.conf

If using Windows, add the following line to the httpd.conf file, so that the ProcessMaker virtual configuration can proceed:

  Include "C:\wamp\bin\apache\apache2.2.8\conf\extra\pmos.conf"

Note: If Apache is using the default port 80, then configure Skype and other programs to not use port 80. You can check whether a program is currently listening on port 80 with netstat -anb in Windows or netstat -tanp in Linux/UNIX.

To configure Skype to stop listening on port 80, go to Tools > Options. Under the Advanced section of the "Options" dialog box, select the Connection tab. Deselect the option Use port 80 and 443 as alternatives for incoming connections.

ProcessMaker Configuration

Open a web browser and enter the IP address (and port number if not using the default port 80) where ProcessMaker is installed. For instance, if ProcessMaker is installed at the address with port 8080, then go to:
If using ProcessMaker which is installed locally, go to:

The installation configuration page should appear to setup ProcessMaker. If the default Apache page appears, then first disable it and try again.


In the configuration page, enter in the username and password to access MySQL. This should be a user such as "root" who has privileges to create new MySQL databases. Click on the Test button to verify that ProcessMaker is configured properly. Green checkmarks will indicate that the settings work correctly:


To change a setting after clicking Test, click on Reset. To change the default administrator username and password, select the option in the ProcessMaker Configuration section. Once all the settings are properly configured click on Install to install processmaker. The installation screen should indicate SUCCESS.


Click on Finish Installation, to redirect to the ProcessMaker login screen. If errors arise, please visit the Processmaker forum to get support.

At the login screen, enter the Username of "admin" and the Password of "admin" and the Workspace name, which by default is "workflow". Once logged in as the administrator, new users and processes can be created inside ProcessMaker. To login with a different workspace, language or skin, see the Login section.

If the ProcessMaker configuration screen appears the next time you try to login, press CTRL+F5 to clear your web browser's cache.

After installing ProcessMaker, configure the server to periodically execute cron.php.

Note: It is a good idea to reset the administrator's password to something more secure in the future before using ProcessMaker in production.

Setting the Default Time Zone

To set the default time zone for the ProcessMaker server, open the file <INSTALL-DIRECTORY>/workflow/engine/config/paths.php with your preferred plain text editor. Search for line 121 that defines the TIME_ZONE constant:

     define('TIME_ZONE', 'America/La_Paz');

Replace the default value 'America/La_Paz' with your time zone. A list of available timezones can be found at:

For example, to change the time zone to Vienna's time:

 ///************TimeZone Set***************//
   if(!defined('TIME_ZONE')) {
     define('TIME_ZONE', 'Europe/Vienna');
Personal tools
Community Editions
ProcessMaker API
ProcessMaker Editions
Share This
In other languages