Overview

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

Follow these instructions to install ProcessMaker 3.0 or later on top of a LAMP (Linux, Apache, MySQL, PHP) stack in OpenSUSE.

ProcessMaker Version Platform Notes
ProcessMaker 3.0 - 3.0.1.6 OpenSUSE 11.2 - 13.1
OpenSUSE Leap 42.1
ProcessMaker 3.0.1.7 - 3.0.4 OpenSUSE 13.1
OpenSUSE Leap 42.1
PHP needs to be upgraded to version 5.5.33 or higher (5.6 is recommended).

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

Step 1: Install MySQL, PHP and Apache

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 the LAMP stack isn't already installed, open a terminal by going to Applications > Accessories > Terminal.
At the command line, login with administrative powers (or as root if its password was set):

sudo -s or su Enter password

Then, follow the instructions according to your OpenSUSE version:

In OpenSUSE 11.2:

Install Apache, MySQL and PHP and all their necessary modules:

zypper install apache2 php5 php5-mysql apache2-mod_php5 mysql mysql-client mysql-community-server php5-soap php5-mbstring php5-gd php5-mcrypt php5-ldap php5-curl php5-xml php5-soap php5-cli

Set MySQL to automatically start as a service at bootup and turn on the service:

chkconfig --add mysql rcmysql start

Then, set Apache to automatically start as a service at bootup and turn on the service:

chkconfig --add apache2 rcapache2 start

Make sure that the apache2 and mysql services will start on bootup. They should be listed as "on" for the runlevel on which your installation of OpenSuSE runs, which is generally level 5:

# chkconfig -l | grep -E "apache2|mysql" apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off mysql 0:off 1:off 2:on 3:on 4:off 5:on 6:off

Check that Apache and PHP are working correctly, by adding an index.php file:

vim /srv/www/htdocs/index.php

Put this code in the file and save it:

<?php phpinfo(); ?>

Then, open a web browser on the server and enter the address:

http://localhost

Information about PHP should appear in the browser window, indicating that PHP is working correctly:

In OpenSUSE 13.1:

Install Apache, MySQL and PHP and all their necessary modules:

zypper install apache2 apache2-mod_php5 mysql-community-server-client mysql-community-server php5 php5-mysql php5-soap php5-mbstring php5-gd php5-mcrypt php5-ldap php5-curl php5-soap

OpenSUSE 13.1 has MariaDB installed by default. The above command will will uninstall MariaDB and replace it with MySQL. If wanting to keep MariaDB and use it instead of MySQL, then use the command:

zypper install apache2 php5 php5-mysql apache2-mod_php5 php5-soap php5-mbstring \ php5-gd php5-mcrypt php5-ldap php5-curl php5-soap

Set MySQL/MariaDB to automatically start as a service at bootup and turn on the service:

chkconfig --add mysql service mysql start

Then, set Apache to automatically start as a service at bootup and turn on the service:

systemctl enable apache2.service service apache2 start

In OpenSUSE Leap 42.1:

Take into consideration that ProcessMaker 3.0.1.8 and ProcessMaker 3.0.2 requires PHP 5.5.33 or higher. The standard repositories for OpenSUSE Leap 42.1 distribute only PHP 5.5.14. Therefore, it is necessary to add the repository of openSUSE 13.2 to download a higher version of PHP (PHP 5.6.9).

Add the OpenSUSE 13.2 repository:

zypper ar -f http://download.opensuse.org/repositories/server:/php/openSUSE_13.2/ Repo13.2

Install Apache, PHP and all their necessary modules with the following command:

zypper install apache2 apache2-mod_php5 php5 php5-curl php5-gd php5-ldap php5-mbstring php5-mysql php5-soap php5-mcrypt php5-sqlite

Set Apache to automatically start as a service at bootup and turn on the service:

systemctl enable apache2 systemctl start apache2

OpenSUSE 42.1 has MariaDB 10.1 installed by default. The following command will uninstall MariaDB, and it will replace it with MySQL Community Server 5.6.30.

zypper remove mariadb

Type "y" to install MySQL.

Then, set MySQL to automatically start as a service at bootup and turn on the service:

systemctl enable mysql systemctl start mysql

Install PhpMyAdmin

In addition, phpMyAdmin can be installed to easily view the MySQL databases used by ProcessMaker inside a web browser.

zypper install phpMyAdmin

Step 2: Configuring PHP Settings

First, enable the php5 module for Apache.

a2enmod php5

Then, restart the Apache service:
OpenSUSE 11.2: rcapache2 restart OpenSUSE 13.1: service apache2 restart OpenSUSE Leap 42.1: systemctl restart apache2

After that, open the PHP's configuration file php.ini located at /etc/php5/apache2/php.ini 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

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 contents:

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 chown -R wwwrun:www /opt/processmaker

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

Step 4: MySQL 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.

Set up a secure installation of MySQL/MariaDB, by setting a root password and removing the "test" database:

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 Y to disable remote access.

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

Finally, reload privileges tables:

Once done, restart the "mysql" service.

OpenSUSE 11.2: rcmysql restart OpenSUSE 13.1: service mysql restart OpenSUSE LEAP 42.1: systemctl restart mysql

MySQL Configuration Issues

Setting the root Password

If MySQL doesn't have a root password, set one for better security:

mysqladmin -u root password PASSWORD

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

Starting as a Service

When logging into MySQL, if the following error message appears:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Then, MySQL needs to be started as a service:

service mysql start

Step 5: Configure Apache

Copy the sample ProcessMaker configuration file (which is named pmos.conf.example in version 3 and virtualhost.conf.example in version 2.8) to Apache's conf.d directory: cp /opt/processmaker/pmos.conf.example /etc/apache2/conf.d/pmos.conf

Then edit the pmos.conf file to fit your environment:

vim /etc/apache2/conf.d/pmos.conf

The Apache configuration to run ProcessMaker depends on the version of Apache installed.

VirtualHost in Apache 2.2

If using Apache 2.2, then use the following VirtualHost configuration. In the pmos.conf file, replace your_ip_address and your_processmaker_domain with the IP address and domain name used by your ProcessMaker server:

# Please change the IP address with your server IP address and # the ServerName with your own subdomains. NameVirtualHost your_ip_address #processmaker virtual host <VirtualHost your_ip_address > ServerName "your_processmaker_domain" DocumentRoot /opt/processmaker/workflow/public_html <Directory /opt/processmaker/workflow/public_html> AddDefaultCharset UTF-8 AllowOverRide All Options FollowSymlinks Order allow,deny Allow from all 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" #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 /etc/apache2/apache2.conf file.

Example 1:

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

NameVirtualHost 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:

NameVirtualHost *:8080 Listen 8080 #processmaker virtual host <VirtualHost *:8080 > 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:

NameVirtualHost 123.45.67.89 #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.

VirtualHost in Apache 2.4

If using Apache 2.4, then use the following VirtualHost configuration. In the pmos.conf file, replace your_ip_address, your_processmaker_domain with the IP address or domain name used by your ProcessMaker server, and replace the line "Allow from all" for Require all granted.

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

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.

Enable Apache modules

ProcessMaker needs to use the following modules in the Apache 2 web server:

  • expires
  • rewrite
  • deflate
  • vhost_alias
  • All these modules are included in openSUSE's apache2 package, but usually only expires is enabled by default. Therefore, enable then with one of the following ways:

    From Graphical Interface (YaST2)

    To enable the other Apache modules from the graphical interface, open the YaST2 Control Center.

    Go to System , click on /etc/sysconfig Editor and a new dialog window will open.

    In the dialog, go to Network > WWW > Apache2 > APACHE_MODULES.

    Make sure that expires is in the list of modules.

    After that, add the following at the end of the APACHE_MODULES line: rewrite deflate vhost_alias

    Note: If using Apache 2.4 (which is found in OpenSUSE 13.1 and later), also include the module filter in the list of APACHE_MODULES. rewrite deflate vhost_alias filter

    YaST2 will display the following dialog to save the variables. Click on "Save" to confirm.

    From Command Line

    To enable the Apache modules from the command line, run the following command:

    vi /etc/sysconfig/apache2

    Search for the APACHE_MODULES variable and edit its list of modules to include expires, rewrite, deflate and vhost_alias.

    Note: If using Apache 2.4 (which is found in OpenSUSE 13.1 and later), also include the module filter in the list of APACHE_MODULES.

    APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 deflate vhost_alias rewrite"

    Once done, save changes and close the file.

    After adding pmos.conf and enabling modules, it is necessary to restart the Apache web server:

    OpenSUSE 11.2: rcapache2 restart OpenSUSE 13.1: service apache2 restart OpenSUSE Leap 42.1: systemctl restart apache2

    Apache Configuration Issues

    Service not starting

    If the Apache service does not start.

    Enter the following command to see whether there are any problems in the Apache configuration

    In OpenSUSE 13.1 and later:

    systemctl -l status apache2.service

    Non-standard Port

    If running ProcessMaker off a port other than the default port 80, then add the following line to the file /etc/apache2/listen.conf:

    Listen ip-address:port

    For instance, if running ProcessMaker from the local machine at port 8080:

    Listen 127.0.0.1:8080

    Or simply:

    Listen 8080

    Note: If Apache is using the default port 80, then configure other programs (like Skype) to not use port 80. Check whether a program is currently listening on port 80 with the command:

    netstat -tanp

    No VirtualHosts Warning

    If you see one of the following messages when reloading or restarting Apache:

    [warn] NameVirtualHost 12.34.56.78:80 has no VirtualHosts [warn] NameVirtualHost *:0 has no VirtualHosts [warn] NameVirtualHost *:80 has no VirtualHosts

    Then, comment out or delete the following lines in the file /etc/apache2/listen.conf:

    NameVirtualHost 12.34.56.78:80 NameVirtualHost *:80 NameVirtualHost *

    Server's Domain Name Warning

    If the following warning message appears when restarting Apache:

    Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

    To avoid this message, edit the /etc/apache2/apache2.conf file and add the following line:

    ServerName ip-address

    For example, if installing ProcessMaker on a server located at the IP address 192.168.0.100:

    ServerName 192.168.10.100

    If installing ProcessMaker for local use on the same computer:

    ServerName 127.0.0.1

    Step 6: Setting up ProcessMaker

    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
    If using ProcessMaker which is installed locally on 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 7: 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.