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:
Go to Visual C++ redistributable packages for Visual Studio 2013.
Click Download.
Choose vcredist_x64.exe and vcredist_x86.exe, and then click Next.
Install vcredist_x86.exe, and then vcredist_x64.exe.
Follow these steps to download the MySQL 5.7.x installer:
Go to the MySQL Community Server download website.
In Select Version, select "5.7.x".
In Select Operating System, select "Microsoft Windows."
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:
In the License Agreement screen, accept the license and then click Next.
The Choosing a Setup Type screen displays. Choose the setup type according to the type of use. (Server only is generally recommended.) Click Next.
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.
The Product Configuration screen displays. This screen begins a wizard to step you through product configuration. Click Next.
The High Availability screen displays. It is recommended to select Standalone MySQL Server / Classic MySQL Replication. Then, click Next.
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.
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.
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.
The Apply Configuration screen displays. To apply the configuration, click Execute.
After the configuration is completed, click Finish.
The Product Configuration screen displays again. Click Next.
The Installation Complete screen displays. Click Finish. The MySQL installation is complete.
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:
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
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:
Go to Visual C++ redistributable packages for Visual Studio 2015.
Click Download.
Choose vc_redist_x64.exe, and then click Next.
Install vc_redist_x64.exe.
To install Apache 2.4 in ProcessMaker, follow these steps:
Download the Apache 2.4.x VC14 binary file (64-bit version) from the Apache Haus or Apache Lounge page.
- Apache Haus:
- Apache Lounge:
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
.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}" Save the changes and close the httpd.conf file.
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 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 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" 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, click the following link: PHP Download.
Follow these steps to install PHP 7.1:
Decompress the
.zip
file content inC:\opt\php
.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" Change the name of the file php.ini-development to php.ini. This file is located in
C:\opt\php\php.ini-development
.The default configuration of PHP should be able to run on ProcessMaker; however, for production environments it is recommended check the following settings to see if PHP's configuration file php.ini has been modified.
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_WARNING & ~E_NOTICE display_errors = Off 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" Save the changes and close the php.ini file.
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" 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 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:
Note: Check if ProcessMaker files have the correct owner and permissions.
Download the latest version of the NSSM application from https://nssm.cc/download.
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.
Open the Windows console as administrator and go to C:\opt\.
Run the command.
nssm install processmaker-jobs-<WORKSPACE> Specify the workspace where the jobs will run. For example:
nssm install processmaker-jobs-workflow 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>
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.
Save the configuration. It is not necessary to modify the other fields.
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, look for the created service and stop and start it:
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: Optimize Server for Performance
As a best practice, it is recommended to apply the following configuration to optimize the server for performance:
-
Modify the
C:\Windows\System32\drivers\etc\hosts
hosts file:127.0.0.1 localhost ::1 localhost #You can add here your domain. By example: 127.0.0.1 www.myserver.com -
Restart the server:
cd c:\opt\Apache24\bin httpd -k restart -
Finally, change the
max_execution_time
value in theC:\opt\php\php.ini
file and then restart the Apache service:max_execution_time = 60
Database Integrations
This stack supports the following database integrations:
Oracle
Follow the next steps to install an Oracle database integration:
Log on an Oracle account and download the Oracle client for Windows by clicking this link.
Unzip this file and copy the content in the System32 and SysWOW64 folders.
In the C:\opt\php\php.ini file, uncomment the following lines:
extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Clientextension=php_pdo_oci.dll Restart the services.
Microsoft SQL Server
Follow the next steps to install a Microsoft SQL Server database integration:
Download the libraries from the Microsoft page and install the file.
In the C:\opt\php\php.ini file, add the following lines:
;;;;;;;;;;;;;;;;;;; ; SQL SERVER EXT ; ;;;;;;;;;;;;;;;;;;; extension=C:\opt\php\ext\php_pdo_sqlsrv_71_ts_x64.dll; extension=C:\opt\php\ext\php_sqlsrv_71_ts_x64.dll; Restart the services.
ProcessMaker Installation
Read Install ProcessMaker to learn how to install ProcessMaker.