Web server requirements

01 server www2

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.

Core software for the server 

  • Mint, CentOS, Debian, Ubuntu - works on most Linux distributions. We do not recommend MS Windows operating system as well as MS Windows Server. Although our system works all adequately on Windows servers, it is not an optimal environment in terms of web applications.
  • Apache 2.4 - works also properly with previous versions, i.e. 2.1, 2.2, 2.3 (the latest versions are recommended). You can also use alternative software as long as it is compatible. 
  • MySQL 5.6 -works also properly with previous versions, i.e. 5.5, 5.1 (the latest versions are recommended). You can also use alternative software as long as it is compatible.
  • PHP 7.1 (recommended); PHP 7.2 (initial compatibility).

Requirements for data base engine [MySQL]

  • SQL_MODE should not contain STRICT_TRANS_TABLE and ONLY_FULL_GROUP_BY
  • ENGINE=InnoDB should be available and enabled by default (enable --skip-innodb)
  • The system works optionally with MySQLi module.

Requirements for php.ini and .htaccess

Primary configuration

  • display_errors: off
  • file_uploads: on
  • output_buffering: on
  • max_execution_time: 600 - the more, the better.
  • max_input_time: 600 - the more, the better.
  • default_socket_timeout: 600
  • mysql.connect_timeout: 600
  • memory_limit: 512M - the more, the better.
  • error_reporting: E_ALL & ~E_NOTICE
  • log_errors: off
  • short_open_tag: On
  • max_input_vars 10000
  • post_max_size 50M
  • upload_max_filesize 100M
  • max_allowed_packet 10M
  • zlib.output_compression Disabled
  • expose_php: Disabled
  • session.auto_start Disabled
  • session.gc_maxlifetime 21600
  • session.gc_divisor 500
  • session.gc_probability 1
  • session.cokie_secure: recommended for those using https
  • mbstring.func_overload: Disabled
  • innodb_lock_wait_timeout: 600
  • wait_timeout: 600
  • interactive_timeout: 600

Parameters enabled

  • allow_url_fopen
  • date.timezone

Third party libraries configuration

  • PDO Mandatory
  • GD Mandatory
  • IMAP Mandatory
  • Zlib Mandatory
  • OpenSSL Mandatory
  • Curl Mandatory
  • LDAP Optional
  • PCRE Mandatory
  • XML Mandatory
  • JSON Mandatory
  • SESSION Mandatory
  • DOM Mandatory
  • ZIP Archive Mandatory
  • MBSTRING Mandatory
  • SOAP Mandatory
  • MySQL Native Driver (mysqlnd) Mandatory
  • APCU Optional
  • OPCACHE Optional
Correct path configuration to third party libraries
  • PEAR
  • Net_SMTP
  • Net_IDNA2
  • Mail_mime

Privileges to folders and files 

Privileges to folders and files are often the most common source of problems for people who install an application on VPS and dedicated servers. 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.
  • Configuration directory config
  • Configuration File config/config.inc.php
  • User privileges directory user_privileges
  • Tabdata File user_privileges/tabdata.php
  • Menu file user_privileges/menu_0.php
  • User privileges file user_privileges/user_privileges_1.php
  • Parent Tabdata File config/parent_tabdata.php
  • Cache Directory cache/
  • Address book directory cache/addressBook/
  • Cache backup directory cache/backup/
  • Image Cache Directory cache/images/
  • Import Cache Directory cache/import/
  • Logs directory cache/logs/
  • Session directory cache/session/
  • Cache templates directory cache/templates_c/
  • Cache upload directory cache/upload/
  • Cron modules directory cron/modules/
  • Vtlib test directory cache/vtlib/
  • Vtlib Test HTML Directory cache/vtlib/HTML
  • Modules Directory modules/
  • Storage Directory storage/
  • Product Image Directory storage/product/
  • User Image Directory storage/user/
  • Contact Image Directory storage/contact/
  • Logo Directory storage/logo/
  • MailView attachments directory storage/OSSMailView/

Supported browsers

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.  
  1. Google Chrome
  2. Firefox
  3. Opera
  4. Internet Explorer 
  5. Safari
  6. Other

Additional configuration using .htaccess

Some servers allow changing the configuration via the .htaccess file. We present some of the examples below.

Apache module (as set in httpd.conf "AllowOverride Options" or "AllowOverride All")

<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 mod_php4.c>
	php_flag	log_error		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>

FastCGI module

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

Additional configuration using user.ini

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. More information available here.

HTTPS encryption

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.
  • Thursday, 10 August 2017