Stack N255 provides detailed information about the database and application server configurations needed to correctly install the following versions of ProcessMaker on the platform CentOS/RHEL 7.x (Latest Version) under NGINX web server.
Stack N225 is supported by ProcessMaker, meaning that it has been tested by the Quality Control team.
|CentOS/RHEL 7.x (Latest version)||MySQL 5.7.x||7.1.x|
|NGINX 1.x.x (Latest version)||xfs||64-bit|
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.
Assuming you already have the last CentOS 7.x Core or Desktop installed and have the proper permissions by typing the comand
sudo su and entered the administrator password you can run the following commands to have the stack ready to install ProcessMaker.
Step 1: Update your Server
Make sure that your server is in the latest version.
Warning: Depending on your CentOS version, the server update should take a long time to complete the update.
Step 2: Remove MariaDB
By default CentOS 7.x comes with some modules of MariaDB installed. So we need to uninstall them.
Step 3: Install MySQL 5.7.x
To install MySQL 5.7.x, use the following steps:
1. Run the command lines to download the repositories:
2. Start the MySQL service and set it to start automatically at boot.
3. Make sure the mysql service is running by checking its status.
The status of the mysql service should be "active (running)":
Before using MySQL, follow the next steps:
1. The temporary password is already defined so you need to check it before you run the
mysql_secure_installation. To do this use the following command:
Use this temporary password when running
2. Use the mysql_secure_installation command to set up a secure database environment and establish a root password to use in the ProcessMaker installation.
The wizard installation begins.
3. Then follow the wizard's instructions to secure MySQL.
Warning: The default password policy implemented by
validate_password of MySQL 5.7 requires that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters. To know more about
validate_password, see The Password Validation Plugin.
Enter the temporary root password. If the temporary password has expired, you need to enter a new password.
4. Change the root password. If it was defined in the step three, skip this step.
5. Confirm to remove anonymous users.
6. Confirm to disable the remote root login.
In the case MySQL is in another server, you must create a new user and give this user the permissions to access.
7. Confirm to remove the test database.
8. Reload privilege tables.
The MySQL installation is now secure.
9. Turn off Derived Table Merging Flags.
10. Disable MySQL Strict Mode on the Server.
11. Restart the MySQL service.
Step 4: Install NGINX
To install NGINX, follow the next steps:
1. Add the NGINX repository file.
2. Add the next lines in the repository file.
3. Install NGINX and start the service.
Step 5: Install and Configure PHP 7.1.x + PHP-FPM + OpCache
Follow these steps:
1. Add the EPEL (CentOS 7.x) repositories or RedHat ones to install PHP.
2. Install PHP and its modules.
Check if all the PHP modules were installed.
The outcome will be similar to the following:
3. Start and enable the PHP-FPM service.
4. In the
php.ini file, set the standard ProcessMaker configurations.
5. Set OpCache configurations.
6. Create the
processmaker.conf file to include PHP-FPM configuration.
7. Include the following to the configuration file, and save the file.
Step 6: NGINX Server Configuration
To configure NGINX to work with ProcessMaker, follow the next steps:
1. Move the Nginx Configuration to work with ProcessMaker.
2. Create the nginx.conf file.
3. The Nginx server configuration file needs to have:
*.conf, replace with your configuration file, and save the file.
4. Restart NGINX.
Step 7:Install and Configure Supervisor
Follow the next steps to install and configure a Supervisor:
Open a terminal and run as a supervisor user by writing the following.
su or sudo -i
Install and enable the Supervisor.
yum -y install supervisor systemctl start supervisord systemctl enable supervisord
Create the laravel-worker-workflow.ini file in the /etc/supervisord.d/ folder.
Add the following lines, and save the file.
[program:laravel-worker-workflow] user=nginx directory=/opt/processmaker/ command=/opt/processmaker/processmaker artisan queue:work --workspace=workflow stdout_logfile=/opt/processmaker/worker-workflow.log autostart=true autorestart=true
If you have two workspaces or more, add the following lines. For example, the workflow and sample workspaces.
[program:laravel-worker-workflow] user=nginx directory=/opt/processmaker/ command=/opt/processmaker/processmaker artisan queue:work --workspace=workflow stdout_logfile=/opt/processmaker/worker-workflow.log autostart=true autorestart=true [program:laravel-worker-sample] user=nginx directory=/opt/processmaker/ command=/opt/processmaker/processmaker artisan queue:work --workspace=sample stdout_logfile=/opt/processmaker/worker-sample.log autostart=true autorestart=true
Enable the laravel-worker-workflow configuration.
supervisorctl reread supervisorctl update sudo supervisorctl stop all sudo supervisorctl start all sudo systemctl stop supervisord.service sudo systemctl start supervisord.service
The queue work is ready to run.
Take into account:
- Depending on the distribution, the directory route must maintain order. This will specify the processmaker workspace.
- Verify that the configured log file has permissions in the stdout_logfile route. It is recommended that the log file (stdout_logfile) be located within the shared folder of processmaker: /shared/worker.log. This may not be advisable if your environment has many workspaces that have a large workload, your log would be lost in time.
- The parameters of the command route must be valid according to the workload. For more information consult the Laravel documentation.
Step 8: Install Firewall and Open ProcessMaker's Port
By default, CentOS 7.x can not work without firewall, therefore it is recommended to install Firewalld so it can be easily configured. Firewalld is a dynamic daemon that manages a firewall with support for networks zones. To install it run the following steps:
1. Install Firewalld.
2. Set the service to start automatically.
3. Open the port where ProcessMaker will run, which is port 80 by default. To use a port other than port 80, it is necessary to change the port number using the following command.
Step 9: Disable SELinux
SELinux causes many problems, which it is often easier to disable. Run the next commands to disable SELinux:
Configuration and ProcessMaker Installation
To learn how to install and configure ProcessMaker, read Configuration and ProcessMaker Installation.