YetiForce CRM requires a proper web server configuration. It is a key element for the process of installation as well as for the system to be stable. Most professional web servers meet the requirements presented below. However, in case your server does not meet all the requirements, ask your administrator to adjust the configuration and send him a link to this article. If your administator cannot change the configuration, it might be time to consider upgrading your server.
During the installation process, the system verifies the actual server configuration and shows the elements that are incorrect and require a change in parameters. Please note that the requirements presented below are not general and not for each installation, for more complex systems they should be verified and optimized individually.
The most recent and complete configuration can be found on GitHub and in the module "Server Configuration" in the developer version:
The requirements depend on the system version, recommended configuration:
The requirements depend on the system version, recommended configuration for php.ini:
Correct path configuration to third party libraries
The requirements depend on the system version, recommended configuration: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/fpm/www.conf
Apache: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/apache/.htaccess
Nginx: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/nginx
Privileges to folders and files are often the most common source of problems for people who install an application on VPS and dedicated servers. There should be the same owner for all CRM files and folders. We prefer such a configuration of files [644] and folders [755] that allow full access from a browser to read and write uploaded files without changing privileges on these folders and files (so the browser has such privileges). It is necessary to remember that when the application is running, it also performs various operations such as read and write as well as creating and deleting files. If you do not know how to configure the privileges, ask your administrator to do it and send him a link to this article.
A user should always have the most up-to-date version of a browser because only the most recent versions support the newest web technologies. Below is a list of browsers from the one that is the most recommended for YetiForce (Google Chrome) to the least recommended.
Some servers allow changing the configuration via the .htaccess file. We present some of the examples below.
<IfModule mod_php5.c>
php_flag log_errors On
php_flag display_errors Off
php_value error_log cache/logs/phpError.log
php_value memory_limit 512M
php_flag output_buffering On
php_flag zlib.output_compression Off
php_flag file_uploads On
php_value upload_max_filesize 100M
php_value post_max_size 50M
</IfModule>
<IfModule fcgid_module.c>
FcgidIOTimeout 600
FcgidConnectTimeout 600
FcgidBusyTimeout 600
FcgidIdleTimeout 600
</IfModule>
<IfModule mod_fcgid.c>
IdleTimeout 600
ProcessLifeTime 600
IPCConnectTimeout 600
IPCCommTimeout 600
BusyTimeout 600
</IfModule>
You can also quickly change the PHP configuration by creating a user.ini file in the main directory ($_SERVER['DOCUMENT_ROOT']), right now it supports CGI/FastCGI. However, be careful because not all parameters can be configured in this way (https://www.php.net/manual/en/configuration.changes.modes.php).
More information available: here.
Example: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/.user.ini
We strongly recommend to always encrypt the connection to the server where YetiForce is installed. If the connection is not established through the HTTPS protocol the communication may be intercepted or altered by third parties.
connect_timeout = 3600
connect_timeout = 3600
net_read_timeout = 3600
net_write_timeout = 3600
wait_timeout = 3600
wait_timeout = 3600
innodb_lock_wait_timeout = 3600
max_execution_time = 3600
max_input_time = 3600
default_socket_timeout = 3600
pm.process_idle_timeout = 3600s
request_terminate_timeout = 3600
server {
...
client_body_timeout 3600;
send_timeout 3600;
location ~ \.php$ {
...
fastcgi_send_timeout 3600;
fastcgi_read_timeout 3600;
keepalive_timeout 3600;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
}
location ~ ^(.+\.php)(.*)$ {
...
fastcgi_send_timeout 3600;
fastcgi_read_timeout 3600;
keepalive_timeout 3600;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
}
}