Please rate how useful you found this document: 
No votes yet

Overview

Stack 260 provides detailed information about the database and application server configurations needed to correctly install the following versions of ProcessMaker on the Microsoft Windows Server 2019 platform.

ProcessMaker 3.4.x

Stack 260 is supported by ProcessMaker, meaning that it has been tested by the Quality Control team.

Summary

Platform Database PHP
Microsoft Windows Server 2019 MySQL 5.7.x 7.1.x
Web Server Filesystem Architecture
Apache 2.4.x NTFS 64 bits

Disclaimer

The stack procedure and references described below are used by ProcessMaker in its cloud environment and it works appropriately in cloud configurations. If this stack is implemented on-premises, ProcessMaker Inc. does not guarantee the stack functions correctly.

Environment

Follow the steps listed below to prepare the environment before installing ProcessMaker.

Step 1: Install MySQL Community Server 5.7.x

MySQL needs Visual C++ redistributable packages for Visual Studio 2013. To install it, follow the next steps:

  1. Go to Visual C++ redistributable packages for Visual Studio 2013.

  2. Click Download.

  3. Choose vcredist_x64.exe and vcredist_x86.exe, and then click Next.

  4. Install vcredist_x86.exe, and then vcredist_x64.exe.

Follow these steps to download the MySQL 5.7.x installer:

  1. Go to the MySQL Community Server download website.

  2. In Select Version, select "5.7.x".

  3. In Select Operating System, select "Microsoft Windows."

  4. Click Download to download the full installer.

Run the installer and configure MySQL as the administrator. To install and configure MySQL properly for ProcessMaker, follow these steps:

  1. In the License Agreement screen, accept the license and then click Next.

  2. The Choosing a Setup Type screen displays. Choose the setup type according to the type of use. (Server only is generally recommended.) Click Next.

  3. The Installation screen displays. Click Execute to run the MySQL installation.

    After the installation is done, the approved requirements displays. Click Next to complete the server configuration.

  4. The Product Configuration screen displays. This screen begins a wizard to step you through product configuration. Click Next.

  5. The High Availability screen displays. It is recommended to select Standalone MySQL Server / Classic MySQL Replication. Then, click Next.

  6. The Type and Networking screen displays. This screen displays default configuration settings. It is recommended to select Server Computer. Then, click Next.

    In the Config Type field, you can select:

    • Development Computer if you just want to try ProcessMaker.
    • Server Computer if ProcessMaker will be running along MySQL in the same server.
    • Dedicated Computer if only MySQL is installed in the server. ProcessMaker will be hosted in another server.
  7. The Accounts and Roles screen displays. Follow these guidelines to use this screen:

    • In the MySQL Root Password field, enter a strong password to use in the synchronization with MySQL database and ProcessMaker. Make sure to remember it.
    • To specify the additional user(s) that have privileges to administer the MySQL database, click Add User.
    • Select an added user, and then click the drop-down menu to select which MySQL privilege(s) that user has.
    • After the optional users have been added and their privileges configured, click Next.

    For more information about the Accounts and Roles step, visit the page MySQL reference manual.

  8. The Windows Service screen displays. Select the Configure MySQL Server as a Windows Service and Start the MySQL Server at System Startup checkboxes. Click Next.

  9. The Apply Configuration screen displays. To apply the configuration, click Execute.

    After the configuration is completed, click Finish.

  10. The Product Configuration screen displays again. Click Next.

  11. The Installation Complete screen displays. Click Finish. The MySQL installation is complete.

  12. Add the MySQL command to the path.

    setx path "%path%";"C:\Program Files\MySQL\MySQL Server 5.7\bin"

Additional Configuration on MySQL

After you have installed MySQL, open the file my.ini to optimize the database. By default my.ini is located on the path C:\Program Files\MySQL\MySQL Server 5.7 or where you have installed MySQL. For more information, see Additional Configuration. Follow the next steps:

  1. In the CMD or Power Shell console, edit my.ini by running the following command:

    notepad "C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"

    Add the following lines at the end of the my.ini file, and then save the file: #Disabling MySQL Strict Mode on the Server sql_mode= "" #Turn off Derived Table Merging Flags optimizer_switch = derived_merge=off

  2. Restart MySQL.

Step 2: Install Apache 2.4

Apache 2.4 needs Visual C++ Redistributable Packages for Visual Studio 2015 (VC14). To install it, follow the next steps:

  1. Go to Visual C++ redistributable packages for Visual Studio 2015.

  2. Click Download.

  3. Choose vc_redist_x64.exe, and then click Next.

  4. Install vc_redist_x64.exe.

To install Apache 2.4 in ProcessMaker, follow these steps:

  1. Download the Apache 2.4.x VC14 binary file (64-bit version) from the Apache Haus or Apache Lounge page.

    • Apache Haus:

    • Apache Lounge:

  2. After downloading Apache 2.4, create a folder with the name opt and extract the httpd-2.4.35-x64-vc11.zip file to C:\opt.

  3. Before installing Apache, edit the Apache file httpd.conf located at C:\opt\Apache24\conf\httpd.conf.

    Change the lines:

    Define SRVROOT "/Apache24" ServerRoot "${SRVROOT}"

    To:

    Define SRVROOT "C:/opt/Apache24" ServerRoot "${SRVROOT}"
  4. Save the changes and close the httpd.conf file.

  5. Add the Apache path to the Windows environment variables. Run cmd.exe as administrator and execute the following command:

    setx /M PATH %PATH%;C:\opt\Apache24\bin
  6. In the command line (Remember to run cmd.exe as administrator), proceed to install Apache.

    cd C:\opt\Apache24\bin httpd -k install httpd -k start
  7. To enable the necessary modules for ProcessMaker, we need to run as administrator the following commands:

    cd C:\opt\Apache24\conf\ powershell -Command "(gc httpd.conf) -replace '#LoadModule alias_module modules/mod_alias.so', 'LoadModule alias_module modules/mod_alias.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule deflate_module modules/mod_deflate.so', 'LoadModule deflate_module modules/mod_deflate.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule expires_module modules/mod_expires.so', 'LoadModule expires_module modules/mod_expires.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule rewrite_module modules/mod_rewrite.so', 'LoadModule rewrite_module modules/mod_rewrite.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule vhost_alias_module modules/mod_vhost_alias.so', 'LoadModule vhost_alias_module modules/mod_vhost_alias.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule headers_module modules/mod_headers.so', 'LoadModule headers_module modules/mod_headers.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule filter_module modules/mod_filter.so', 'LoadModule filter_module modules/mod_filter.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule access_compat_module modules/mod_access_compat.so', 'LoadModule access_compat_module modules/mod_access_compat.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so', 'LoadModule authnz_ldap_module modules/mod_authnz_ldap.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule ldap_module modules/mod_ldap.so', 'LoadModule ldap_module modules/mod_ldap.so' | Out-File -Encoding UTF8 httpd.conf" powershell -Command "(gc httpd.conf) -replace '#LoadModule ssl_module modules/mod_ssl.so', 'LoadModule ssl_module modules/mod_ssl.so' | Out-File -Encoding UTF8 httpd.conf"
  8. Restart the Apache service in the Service Manager or by using using the following command in the console.

    cd c:\opt\Apache24\bin httpd -k restart

Step 3: Install PHP 7.1

To download the PHP binary file, go to the PHP Download page, click the latest VC14 x64 Thread Safe Zip version from the PHP 7.1 (7.1.x) section.

Follow these steps to install PHP 7.1:

  1. Decompress the .zip file content in C:\opt\php.

  2. Reopen the Apache file httpd.conf located at C:\opt\Apache24\conf\httpd.conf, and add the following lines to the end of the file.

    LoadModule php7_module "c:/opt/php/php7apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "C:/opt/php"
  3. Change the name of the file php.ini-development to php.ini. This file is located in C:\opt\php\php.ini-development.

  4. Add the following lines to the bottom of the php.ini file:

    extension="c://opt/php/ext/php_curl.dll" extension="c://opt/php/ext/php_gd2.dll" extension="c://opt/php/ext/php_ldap.dll" extension="c://opt/php/ext/php_mbstring.dll" extension="c://opt/php/ext/php_mysql.dll" extension="c://opt/php/ext/php_openssl.dll" extension="c://opt/php/ext/php_soap.dll" extension="c://opt/php/ext/php_opcache.dll" ; verify the next extensions are enabled extension="c://opt/php/ext/php_bz2.dll" extension="c://opt/php/ext/php_exif.dll" extension="c://opt/php/ext/php_fileinfo.dll" extension="c://opt/php/ext/php_gettext.dll" extension="c://opt/php/ext/php_gmp.dll" extension="c://opt/php/ext/php_gd2.dll" extension="c://opt/php/ext/php_mysqli.dll" extension="c://opt/php/ext/php_openssl.dll" extension="c://opt/php/ext/php_pdo_sqlite.dll" extension="c://opt/php/ext/php_pdo_mysql.dll" extension="c://opt/php/ext/php_pdo_odbc.dll" extension="c://opt/php/ext/php_shmop.dll" extension="c://opt/php/ext/php_soap.dll" extension="c://opt/php/ext/php_shmop.dll" extension="c://opt/php/ext/php_sockets.dll" extension="c://opt/php/ext/php_sqlite3.dll" extension="c://opt/php/ext/php_xsl.dll" extension="c://opt/php/ext/php_imap.dll"
  5. Save the changes and close the php.ini file.

  6. In the Command Prompt console go to the folder C:/opt/php and run the following lines to configure Opcache:

    cd C:\opt\php\ powershell -Command "(gc php.ini) -replace 'expose_php = On', 'expose_php = Off' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.enable_cli=0', 'opcache.enable_cli=1' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.max_accelerated_files=4000', 'opcache.max_accelerated_files=10000' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.max_wasted_percentage=5', 'opcache.max_wasted_percentage=5' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.use_cwd=1', 'opcache.use_cwd=1' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.validate_timestamps=1', 'opcache.validate_timestamps=1' | Out-File -Encoding UTF8 php.ini" powershell -Command "(gc php.ini) -replace ';opcache.fast_shutdown=0', 'opcache.fast_shutdown=1' | Out-File -Encoding UTF8 php.ini"
  7. Add the PHP path to windows environment variables by running cmd.exe as administrator, and run the following command:

    setx /M PATH %PATH%;C:/opt/php
  8. Stop and start the Apache service to apply the previous changes to the php.ini and httpd.conf. Run the following command in the console.

    cd C:\opt\Apache24\bin httpd -k stop httpd -k start

Step 4: Install and Configure NSSM

Follow the next steps to install and configure the NSSM Supervisor:

  1. Download the latest version of the NSSM application from https://nssm.cc/download.

  2. After decompressing the contents of the zip file, copy the nssm.exe file to the folder C:\opt\. This file could be placed anywhere, but it is recommended to place all related to ProcessMaker in the same place.

  3. Open the Windows console as administrator and go to C:\opt\.

  4. Run the command.

    nssm install processmaker-jobs-<WORKSPACE>

    Specify the workspace where the jobs will run. For example:

    nssm install processmaker-jobs-workflow
  5. The last command displays a window with several tabs. Go to the Application tab.

    • In the Path field, enter the path where the PHP executable is located, usually C:\opt\php\php.exe.
    • In the Startup directory field, enter the path where ProcessMaker is installed, usually C:\opt\processmaker.
    • In the Arguments field, enter the queue command specifying the workspace. processmaker artisan queue:work --workspace=<WORKSPACE>

  6. Go to the Details tab. In the Display name field, enter ProcessMaker Jobs for <WORKSPACE>. This value helps ProcessMaker identifies jobs easily in the Windows Services Panel.

  7. Save the configuration. It is not necessary to modify the other fields.

  8. Start the service by running the following command.

    nssm start processmaker-jobs-<WORKSPACE>

    Specify the workspace, for example:

    nssm start processmaker-jobs-workflow

    Alternatively, you can open the Windows Services Panel, and look for the created service and start it, as we can see in the following graphic:

  9. Depending on the Company’s security policies, additionally, in the Log on tab, you can configure the account that will run the service.

Recommended Step - Tuning Server

It is recommended to modify the hosts that is located at C:\Windows\System32\drivers\etc\hosts:

127.0.0.1 localhost ::1 localhost #Also you can add here your domain -> 127.0.0.1 www.myserver.com

To apply changes, restart the network services.

cd c:\opt\Apache24\bin httpd -k restart

Also is recommended to be sure in php.ini, the following value max_execution_time = 60.

ProcessMaker Installation

Read Install ProcessMaker to learn how to install ProcessMaker.