2.0/ProcessMaker Generic Installation
Follow these generic instructions to install ProcessMaker 2.0 on a server running Linux or UNIX or Windows (XP, Server 2003, Vista, 7, or Server 2008). To install ProcessMaker 1.X, see this page.
- Apache 2.2.3 or greater with the following modules enabled:
- PHP 5.1.6 or greater with the following modules enabled:
- 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) (necessary for executing cron.php and the processmaker script, and developing plugins).
- MySQL 5.1.6 or greater
Checking ProcessMaker Requirements
Available version: From 2.5 on
Inside Admin tab, the option to check ProcessMaker requirements was added, with the possibility to check if all items are installed correctly; only users with PROCESSMAKER_ADMIN will have access to check the requirements.
Go to ADMIN > Settings > Check PM Requirements:
By clicking on Check again button, all new possible installations made to correct the missing items will be re checked to verify if everything is properly installed.
Checking PHP Information
Available version: From 2.5 on
When it is required to know if some PHP modules, time zone, etc., are installed on ProcessMaker server, the admin user used to create a phpinfo() inside a public directory on ProcessMaker. To bring users a more easy accessibility to check this information, the PHP information was included inside ADMIN tab, so only only users with PROCESSMAKER_ADMIN will have access to check it by going to ADMIN > Settings > PHP Information:
- If you want to increase ProcessMaker performance please check this configuration
Uploading large Input Documents
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
Managing Sessions in ProcessMaker
If it is required to extend or reduce the session timeout in ProcessMaker, the following varibales needs to be modified
session.gc_maxlifetime = 1440 // expressed in seconds session.cache_expire = 180 // expressed in seconds session.cache_limiter = nocache
After modifying those values restart Apache server.
Generating more than 300 rows on an Output Document
On php 5.3.9 version it was included the max_input_vars variable, setting up or creating this variable will allow you to generate more than 300 rows on an Output Document. Set up the variable as follows:
max_input_vars = 8000
If this value is not changed, when information will be send to the server form the forms (for example grids with many rows) information will be truncated.
Note: In some PHP version as 5.3.3-7+squeeze9, it's recommended to install the suhosin patch, configuration file is in the following path
Configure the file as follows:
suhosin.post.max_vars = 8000 suhosin.request.max_vars = 8000
Finally, restart the apache service and try it again.
To import processes successfully, it is recommended to have the following configuration:
short_open_tag = On
Modify this file for MySql versions 5.5.x or greater
To avoid problems running triggers on mysql the default go to my.conf located at
/etc and change parameter from
binlog_format=row therefore is recommended to change the configuration
binlog_format = MIXED.
For more information check the mysql documentation sql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_format mysql documentation]
1. Go to http://sourceforge.net/projects/processmaker/files and download a recent tarball of ProcessMaker, which should be named processmaker-2.X-X.tar.gz
The versions are numbered according to the pattern MAJOR.MINOR.REVISION, such as "2.0.36". Beta versions will have the word "beta" appended to the version number.
2. Move the processmaker-2.X.X.tar.gz file which was downloaded to the directory in your server where the ProcessMaker application will be stored.
ProcessMaker can be installed in any directory which is not publicly accessible to the internet (so do NOT install it in /var/www in Linux/UNIX).
In Linux/UNIX, it is generally installed in the /opt directory, since it is an optional program which doesn't come from the standard repositories.
In Windows XP and Server 2003, it is generally installed in the C:\Program Files directory.
In Windows Vista, 7, and Server 2008, it is generally installed in the local directory of a user, such as C:/Users/X/processmaker, due to the new security restrictions which do not allow Apache to write to the C:/Program Files directory.
tar -C /opt -xzvf processmaker-2.X.X.tar.gz
- Use WinRAR or 7-Zip to extract the file processmaker-2.X.X.tar.gz
This will create a new processmaker directory, containing all the ProcessMaker files and directories, which should have the following contents:
gulliver processmaker rbac shared LICENSE.txt processmaker.bat README.txt workflow
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.
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 writable, so ProcessMaker running on Apache can write to them.
cd <INSTALL-DIRECTORY>/processmaker chmod -R 770 shared cd <INSTALL-DIRECTORY>/processmaker/workflow/engine/ chmod -R 770 config content/languages plugins xmlform js/labels
From version 2.0.40 give write permissions to:
chmod -R 222 /processmaker/workflow/public_html
Then, change the owner of the ProcessMaker files to the user who runs Apache. The name of this user varies from distribution to distribution:
chown -R apache:apache <INSTALL-DIRECTORY>/processmaker
chown -R www-data:www-data <INSTALL-DIRECTORY>/processmaker
chown -R wwwrun:www <INSTALL-DIRECTORY>/processmaker
- Right click on the following folders, choose option: "Properties", on the window "Properties" uncheck the option "Read only":
From version 2.0.40 add the following permission:
Edit the file <INSTALL-DIRECTORY>/processmaker/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:
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 /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 XP server at address 192.168.1.100 on port 8080 with a domain at processmaker.mycompany.com:
NameVirtualHost 192.168.1.100:8080 #processmaker virtual host <VirtualHost 192.168.1.100:8080 > ServerName "processmaker.mycompany.com" DocumentRoot C:\Program Files\processmaker\workflow\public_html DirectoryIndex index.html index.php <Directory "C:\Program Files\processmaker\workflow\public_html"> ...
For example, if running ProcessMaker on a Linux server at address server1.example.com with a domain at pm.example.com:
NameVirtualHost server1.example.com #processmaker virtual host <VirtualHost server1.example.com > ServerName "pm.example.com" DocumentRoot /opt/processmaker/workflow/public_html DirectoryIndex index.html index.php <Directory "/opt/processmaker/workflow/public_html"> ...
For example, if ProcessMaker is installed in the "/home/fred" directory on your local machine at port 8080 with an dynamic IP assigned by DHCP:
NameVirtualHost *:8080 #processmaker virtual host <VirtualHost *:8080 > ServerName "*" DocumentRoot /home/fred/processmaker/workflow/public_html DirectoryIndex index.html index.php <Directory "/home/fred/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 Apache configuration file, which is generally named httpd.conf.
Then, copy the pmos.conf file to the following directory, where it will automatically be loaded by the Apache web server:
- 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:
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.
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 192.168.10.100 with port 8080, then go to: http://192.168.10.100:8080
If using ProcessMaker which is installed locally, go to: http://127.0.0.1
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. If errors arise, please check the file <INSTALL-DIRECTORY>/shared/log/install.log and visit the Processmaker forum to get support.
Click on Finish Installation, to redirect to the ProcessMaker login screen. If errors arise, please check the file <INSTALL-DIRECTORY>/shared/log/install.log and 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+SHIFT+r or CTRL+F5 to clear the web browser's cache.
Note: It is a good idea to reset the administrator's password to something more secure in the future before using ProcessMaker in production.
Increasing ProcessMaker Performance
Follow the steps below to increase ProcessMaker performance:
1. Use apache normally.
2. If zip compression on virtual host configuration is enabled, be sure that mod_deflate is enable on the httpd.conf file. But it is usually enabled by default as the line showed above:
LoadModule deflate_module modules/mod_deflate.so
3. Finally add this lines on pmos.conf file on the Virtual Host:
<IfModule mod_deflate.c> SetOutputFilter DEFLATE <IfModule mod_setenvif.c> # Netscape 4.x has some problems BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0 no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48, the above regex won’t work. You can use the following # workaround (comment the above line and uncomment the below line) to get the desired effect: # BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Don’t compress already-compressed files SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary </IfModule> <IfModule mod_headers.c> # Make sure proxies don’t deliver the wrong content Header append Vary User-Agent env=!dont-vary </IfModule> </IfModule>
Configuring ProcessMaker to use SSL/TLS
If your organization needs greater security to protect sensitive data being passed between web clients and the ProcessMaker server, it may be a good idea to set up a SSL or TLS connection which can be accessed through the https protocol (rather than the standard http protocol).
Follow the steps in this link to set up an SSL-secured web server with Debian. After creating the certificates that will used by the ProcessMaker server, then configure ProcessMaker to use https in Apache.
Edit the file /etc/apache2/sites-available/pmos.conf and add the following lines in bold:
Then restart the Apache web server so the altered configuration will take effect:
Now it possible to use ProcessMaker over SSL. Login to ProcessMaker by using the https protocol:
Additional aspects of ProcessMaker may need to be configured. See the Configuration section of the wiki. Most installations of ProcessMaker need to configure the following:
Setting the Time Zone
In ProcessMaker version 2.0.29 and later, the default time zone for the ProcessMaker server is set in the env.ini configuration file. If using a previous version of ProcessMaker, see Default Time Zone.
Execution of cron.php
Errors during Installation
If an error occurs during the installation, check the installation log file:
Depending on the errors found in the installation log file, check the following files:
The Apache configuration file:
The ProcessMaker web site configuration file for Apache:
The PHP configuration file:
The MySQL configuration file:
The ProcessMaker configuration file where components are installed:
The ProcessMaker configuration file for database connections:
The ProcessMaker redirection to login screen:
If the following error appears at the login screen:
This error indicates that the installer was unable to access the MySQL databases to install the translations. Make sure that the MySQL port (which is 3306 by default) isn't blocked by a firewall and MySQL is configured to accept connections from the server running processmaker. If that doesn't work, then ask for help on the forum.