Overview

Note: Take into notice that this platform is not officially supported by ProcessMaker. The Slackware Installation has been included under the experimental section, since this installation has NOT being tested by ProcessMaker QA Department.

Follow this tutorial to install ProcessMaker 3 in Slackware 14.2 and later. Slackware is a conservative community Linux distribution that aims for design, stability and simplicity.

Before installing ProcessMaker, check the Installation Requirements to see whether your server meets the necessary hardware and software requirements.

Requirements

  • ProcessMaker v 3.0.1.8, v.3.0.2, or v.3.0.4
  • Slackware v. 14.2 (latest version)

This guide assumes that a full Slackware installation is ready and that the network has already been configured.

Step 1: Installing Apache, MySQL and PHP

Warning: ProcessMaker is not compatible with MySQL STRICT mode, which is enabled by default in MySQL 5.7. Read the Turning Off MySQL STRICT Mode section to learn how to disable it. Since MySQL 5.7 is NOT part of any official ProcessMaker stack, the application has not been tested entirely in this version of MySQL. Therefore, ProcessMaker may not run correctly even if STRICT mode is disabled.

If a full installation was performed, Slackware 14.2 comes with the following versions already installed:

  • Apache 2.4.20
  • PHP 5.6.23
  • MariaDB 10.0.26

To verify this, open a terminal with a user that has root privileges and run the following command to search for the package:

slackpkg search package

If the Apache package is not installed, write the following command to first download it.

slackpkg download httpd

A dialog will be displayed to select an Apache version.

Once downloaded, install the package executing the following command:

slackpkg install httpd

To start the httpd server and to be sure it starts each time at boot, set the /etc/rc.d/rc.httpd file as executable and start it with the following command.

chmod 0744 /etc/rc.d/rc.httpd /etc/rc.d/rc.httpd start

MariaDB 10.0.26 is already installed as the default database server along with PHP version 5.6.23 when the Slackware 14.2 installation was performed.

Step 2: Configure PHP Settings

Restrictions about PHP

Please take notice of the following PHP restrictions:

  • ProcessMaker does not support PHP 7.
  • In some hosted servers the get_headers and apache_request_headers functions may be disabled, this will cause ProcessMaker's API doesn't work properly since REstler library uses those functions. Make sure to have those functions enabled.

To avoid viewing unnecessary warning messages in the @@__ERROR__ system variable in the debugger, it is recommended to turn off deprecated and strict warnings:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = Off

Configuring PHP

Open the PHP's configuration file php.ini located at /etc/ with your favorite editor.

Search for the following lines and edit them using the following configurations:

short_open_tag = On memory_limit = 512M error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = Off post_max_size = 24M upload_max_filesize = 24M

Next, uncomment the following extensions (remove the ; symbol at the beginning of each line):

extension=php_curl.dll
extension=php_gd2.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_soap.dll

Save the changes and close the file.

Step 3: Download & Extract ProcessMaker

Go to ProcessMaker's SourceForge page and download a recent tarball of ProcessMaker, which should be named processmaker-X.X.X.X-community.tar.gz.

After the download has finished, decompress the tarball in the directory where ProcessMaker will be installed. ProcessMaker can be installed in any directory which is not publicly accessible to the internet (so do NOT install it in /var/www), but it is generally installed in /opt, since it is an optional program which doesn't come from the standard repositories:

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

Verify that ProcessMaker was correctly decompressed:

ls /opt/processmaker

The processmaker directory should contain the following content:

Set file permissions

Then, issue the following commands as the "root" user so that ProcessMaker can access the necessary files when run by the Apache server:

cd /opt/processmaker chmod -R 770 shared workflow/public_html gulliver/js gulliver/thirdparty/html2ps_pdf/cache cd workflow/engine/ chmod -R 770 config content/languages plugins xmlform js/labels

By default the Apache service runs as the user apache. Therefore, the ownership of the ProcessMaker directory must belong to apache, so that Apache can read and write data. The -R makes the ownership changes recursive (apply to all files and directories within /opt/processmaker).

chown -R apache:apache /opt/processmaker

After these changes, verify the permissions and owner of the processmaker directory with the command ls -l.

Step 4: MariaDB Configuration

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

As mentioned before, Slackware comes with MariaDB as the default database service. Before starting the MariaDB Service, it is neccesary to disable the "-skip-networking" option by opening the mysqld script located at /etc/rc.d/rc.mysqld.

Search the following line and comment it out of the mysqld script (insert"#" at the beginning of the line).

SKIP="--skip-networking"

Then, install the database system tables with the following command to get the right permissions.

mysql_install_db --user=mysql

Start the MariaDB's service "mysqld" running the following command:

chmod +x /etc/rc.d/rc.mysqld /etc/rc.d/rc.mysqld startrc.mysqld

Set a password for the MariaDB root user with the following command.

'/usr/bin/mysqladmin' -u root password 'password'

Finally, use the mysql_secure_installation command to set up a secure database environment. Login as the "root" user and issue the following command:

mysql_secure_installation

Follow the wizard to secure MySQL:

Here it is necessary to enter root password:

In the next part, it is possible to change the root password if wanted.

Then, remove anonymous users by choosing "Y":

In this part, the prompt will ask about disabling root login. Answer No because, ProcessMaker is going to run as a Virtual Host. Therefore, the remoto login should be enabled.

Then, it is possible to remove the default "Test" database:

Finally, reload privileges tables:

MySQL Possible Configuration Issues

Can't connect to server through socket

This error is usually because the database was created first with wrong permissions.

To resolve this, first, try removing the database directory.

rm -fR /var/lib/mysql

Then, recreate it with the right permissions, change directly its permissions and start the mysqld daemon with the dedicated init script.

mysql_install_db --user=mysql chmod +x /etc/rc.d/rc.mysqld /etc/rc.d/rc.mysqld start

Setting the root Password

If MariaDB doesn't have a root password, set one for better security with the following command:

'/usr/bin/mysqladmin' -u root password 'password'

Step 5: Apache Configuration

First, remove the apache welcome page with the following command:

rm -f /etc/httpd/conf.d/welcome.conf

Edit the Apache file httpd.conf located at /etc/httpd/httpd.conf

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

LoadModule authnz_ldap_module lib/httpd/modules/mod_authnz_ldap.so
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule expires_module lib/httpd/modules/mod_expires.so
LoadModule ldap_module lib/httpd/modules/mod_ldap.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule ssl_module lib/httpd/modules/mod_ssl.so
LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so

By default, the httpd.conf file is configured to listens to all addresses on the machine on port 80. However, it may need to be specified to listen on specific ports, or only on selected addresses depending on your server.

For example:

To make the server accept connections on both port 80 and port 8000, on all interfaces.

Listen 80 Listen 8000

To make the server accept connections on port 80 for one interface, and port 8000 on another, use:

Listen 192.0.2.1:80 Listen 192.0.2.5:8000

Uncomment the following line (remove the # symbol) to enable Virtual Hosts.

Include /etc/httpd/extra/httpd-vhosts.conf

To enable PHP, do not forget to uncomment the following line.

Include /etc/httpd/mod_php.conf

Add index.php next to "index.html" in the following line

Save the changes and close the file.

Now, open the sample ProcessMaker configuration file pmos.conf.example located at /opt/processmaker and copy the content:

Then, search the file httpd-vhosts.conf located at /etc/httpd/extra.

Open it, and paste the content of the pmos.conf file inside the httpd-vhosts.conf file.
The content pasted is similar to the following example, replace your_ip_address and your_processmaker_domain with the IP address or domain name used by your ProcessMaker server:

#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> Options Indexes FollowSymLinks MultiViews AddDefaultCharset UTF-8 AllowOverride All Require all granted ExpiresActive On <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*/(.*)$ app.php [QSA,L,NC] </IfModule> #Deflate filter is optional. It reduces download size, but adds slightly more CPU processing: 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 /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. For more information, see the Apache Virtual Hosts Documentation.

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 file /etc/httpd/conf/httpd.conf.

Example 1:

ProcessMaker is installed in the /opt/processmaker directory and is running on a server at the address 192.168.1.100:

#processmaker virtual host <VirtualHost 192.168.1.100> ServerName "192.168.1.100" DocumentRoot /opt/processmaker/workflow/public_html ...

Example 2:

ProcessMaker is installed in the /user/fred directory on your local machine at port 8080 with an dynamic IP assigned by DHCP:

Listen 8080 #processmaker virtual host <VirtualHost *:8080 > #don't include ServerName DocumentRoot /user/fred/processmaker/workflow/public_html ...

Example 3:

ProcessMaker is installed in the /opt/pm3.0.1.7 directory at the IP address 123.45.67.89 and the domains www.example.com and any variant of X.example.com:

#processmaker virtual host <VirtualHost 123.45.67.89 > ServerName "www.example.com" ServerAlias "*.example.com" DocumentRoot /opt/pm3.0.1.7/processmaker/workflow/public_html ...

Note that www.example.com and *.example.com need to be defined in the server's DNS or /etc/hosts file for this example to work correctly.

After editing the httpd-vhosts.conf file, it is necessary to restart the Apache web server to use the new configuration: /etc/rc.d/rc.httpd restart

Step 7: Setting up ProcessMaker

Once all ProcessMaker configurations were set up, 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, then go to: http://192.168.10.100 or if it is installed locally at port 8080, go to: http://127.0.0.1:8080

Then follow the steps in the Installation Wizard in the web browser to complete the installation of ProcessMaker.

Step 8: Additional Configuration

Additional aspects of ProcessMaker may need to be configured. See Additional Server Configuration and the Administration section of the wiki. Most installations of ProcessMaker need to configure the following:

Setting the Time Zone

The default time zone for the ProcessMaker server can be set by logging into ProcessMaker with the "admin" user and going to Admin > Settings > System and setting the Time Zone. Another way to set the time zone is edit the env.ini configuration file.

Configuring Email

If planning on sending out email notifications or enabling users to recover forgotten passwords, then see Email - Settings to configure ProcessMaker to use an email server.

Execution of cron.php

If planning on using email notifications or timer events, then the server running ProcessMaker has to be configured to periodically execute the cron.php file. See Executing Cron Scripts.

Errors during Installation

If an error occurs during the installation, check the installation log file:

<install-directory>/shared/log/install_log.log

Depending on the errors found in the installation log file, check the following files:

The Apache configuration file:

/etc/httpd/conf/httpd.conf

The ProcessMaker web site configuration file for Apache:

/etc/httpd/conf.d/pmos.conf

The PHP configuration file:

/etc/php.ini

The MySQL configuration file:

/etc/my.cnf

The ProcessMaker configuration file where components are installed:

<install-directory>/workflow/engine/config/paths_installed.php

The ProcessMaker configuration file for database connections:

<install-directory>/shared/sites/workflow/db.php

The ProcessMaker redirection to login screen:

<install-directory>/processmaker/workflow/public_html/index.html

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 having other issues, please ask for help on our ProcessMaker forum.