cPanel is a Unix based web hosting control panel that provides a graphical interface and automation tools designed to simplify the process of hosting a web site. cPanel utilizes a 3 tier structure that provides capabilities for administrators, resellers, and end-user website owners to control the various aspects of website and server administration through a standard web browser.

Source: wikipedia

Note: This tutorial will guide you through the installation of ProcessMaker in cPanel. Since this tutorial is a contribution of a member of our Community, we don't support this installation, please refer to our documentation contribution list to contact the contributor


  • Processmaker v. 1.6 and later
  • Any cPanel version

Warning: ProcessMaker is not compatible with MySQL STRICT mode which is turned on by default in MySQL 5.7. See the Turning off MySQL STRICT Mode section to disable it.


Creating A New User Account

1. The first step is to create the user for the website.

2. Log into WHM, then search for 'Create a New Account'.

3. Enter in all the details, leave defaults for most.

4. Under 'Mail Routing Settings' change it to 'Backup Mail Exchanger' unless u require otherwise.

5. Now you have your account setup. Check if your IP is correct, otherwise you might need to change your IP.

6. You can do so by searching for 'Change Site's IP Address' and clicking on the account and just selecting from the available IP Addresses.

Installing ProcessMaker

Note: The following tutorial is assuming you have root ssh access and also assumes you have fulfilled all the configuration requirements for installing ProcessMaker. The requirements can be found on this page

Download the desired ProcessMaker OS Version to /home/your_account. It can be found on this page. Best to do it with wget command: $cd /home/your_account $wget url

Once the file is done downloading, type in the following command:

$tar -C public_html -xzvf processmaker_os_file.tar.gz

tar is the zip program for linux, -C is shorthand for --directory command, which specifies where to unzip the file to, not quite sure what -xzvf does, but it is needed, if anyone knows exactly what -xzvf command is & does, and then finally the file you are unzipping, which in our case is the ProcessMaker OS.

Once the file is done unzipping, you can delete the tarball.

Next type the following commands:

$cd public_html/processmaker/workflow/engine
$chmod 777 config content/languages plugins xmlform js/labels

We change to the engine directory, which is the heart of the ProcessMaker OS Application. Then we change permissions for specific directories to allow them to be readable & writable so that ProcessMaker can install itself.

If using SuPHP then

Type the following:

$cd ../public_html
$chmod 755 sysGeneric.php
$cd ../
$chmod 755 public_html
$cd ../
$chmod 755 workflow
$cd ../
$chmod 755 processmaker

The above commands are needed because when using SuPHP, the system is a lot stricter about permissions. If the permissions are too flimsy and unsecure it will give a Internal Server Error Code 500.

Next, type this command:

$chown -R your_account:your_account processmaker

This command is needed so that the server can run the application, since we installed the application with root user, it by default will be chowned to the root.

If you have a different user running apache, for example, nobody, then I would suggest instead doing the following:

$chown -R your_account:nobody processmaker

Next, create a file named .htaccess and place it in /home/your_account/public_html/processmaker/workflow/public_html and place the following code inside it:

  AddDefaultCharset UTF-8
  Options FollowSymlinks
  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

If running ProcessMaker on the main domain

See: How To Change The DocumentRoot

If running ProcessMaker on a sub domain

Go to the cpanel for your_account<tt>. Type Control+F on your keyboard and type in the search box 'Subdomains'. Then, type in the sub domain you will be using. Then, make sure the Document Root <tt>public_html/processmaker/workflow/public_html. This can change depending on how you are structuring your website and users.

Next, go to the cpanel for your_account. Type Control+F on your keyboard and type in the search box MySQL® Databases.

Then create 3 databases. Its not really important what you call them, but it is important you be able to identify which is which. I would suggest to make sure at least the end of the databases are each respectively wf, rb and rp. For the purpose of this tutorial we will call them database_wf, database_rb and database_rp. Then create a database user. Again, you can call it what you like, but for the purpose of this tutorial we will call it database_user. Then assign database_user to each of the 3 databases, and assign all the rights for each one. Don't worry, only the application will have access to this user, and will not be visible to anyone accessing the system, unless you decide to give it out.

If you did all the above correctly, then when you access the url for the site, you should get the ProcessMaker Installation Screen.

The database configuration section will be highlighted red. Don't worry. This is a good sign.

You can leave the host as localhost unless you require otherwise. Type in the username you created. I.e. database_user. Type in the password you gave it.

Then Select the advanced options from the dropdown above the database section. If you followed the naming convention I used, then type in the following: Workflow database - database_wf Rbac database - database_rb Reporting database - database_rp

If you did not follow my naming convention, then you understand now why I insisted on at least leaving the last 2 letters according to the convention.

Press on the top test. Now everything should light up green, including the previously red database section.

Now press Install on the top.

If your server configuration met the requirements, then you should see a quick ProcessMaker script run and say completed. Then click on the button on the top to go to the application.

By default ProcessMaker makes only 1 user, called admin, and the password is also admin. I would advise changing the password for it immediately.

Report Table - Absolute/Relative Pathing issue

When using cPanel in a WHM installation, if one wishes to create a reporting table, because of the relative pathing in the classes created in the shared directory, users cannot open a case. To fix this issue absolute pathing must be used. When you have multiple pm reporting tables, it is difficult to do it manually every time.