InstallationStep5

1. berliCRM Installation Instructions

(for update instructions see 2. below)

The CRM system requires a special server setup, usually not provided as standard from any Hoster. Please read the following instructions carefully and make sure that your server meets ALL requirements. There are no shortcuts.

System Requirements

  • Web Server: Apache >= 2.0.40, Nginx >= 1.13
  • DB Server: MySQL Versions 5.5.x and 5.6.x (v5.7 has not been tested, yet), MariaDB 10.x.x
  • PHP: PHP Version: works with v5.6.x. but much faster with v7.1.x
  • OS: Debian, Centos, Ubuntu or Fedora Core
  • SSL: required and mandatory for installation

MYSQL Requirements

Please check the MySQL-Configuration (my.cnf or server-start parameter):

SQL_MODE STRICT_TRANS_TABLE has to be deactivated
ENGINE=InnoDB must be active (do not use --skip-innodb)
DATABASE CHARACTER SET must be utf8
DATABASE COLLATION must be utf8_unicode_ci

PHP Extensions

The following PHP Extensions are required

MySQLi
GD
IMAP
Zlib
OpenSSL Imap with OpenSSL has to be activated for SSL Mail Server connections
Curl
XML
mbstring
opcache (since berliCRM v1.0.0.11)
ctype
simplexml
zip
json
session

PHP Packages for FreeBSD 12.0

(community recommendation see CRM Forum)

The following PHP Extensions are required

mod_php71-7.1.28
php71-7.1.28
php71-ctype-7.1.28
php71-curl-7.1.28
php71-filter-7.1.28
php71-gd-7.1.28
php71-imap-7.1.28
php71-json-7.1.28
php71-mbstring-7.1.28
php71-mysqli-7.1.28
php71-opcache-7.1.28
php71-openssl-7.1.28
php71-session-7.1.28
php71-simplexml-7.1.28
php71-xml-7.1.28
php71-zip-7.1.28
php71-zlib-7.1.28
apache24-2.4.39 Version 2.4.x of Apache web server
apr-1.6.5.1.6.1_1 Apache Portability Library
ca_root_nss-3.43 Root certificate bundle from the Mozilla Project
cclient-2007f_3,1 C-client mail access routines by Mark Crispin
curl-7.64.1_1 Command line tool and library for transferring data with URLs
db5-5.3.28_7 Oracle Berkeley DB, revision 5.3
expat-2.2.6_1 XML 1.0 parser written in C
fontconfig-2.12.6,1 XML-based font configuration API for X Windows
freetype2-2.9.1 Free and portable TrueType font rendering engine
gdbm-1.18.1 GNU database manager
gettext-runtime-0.19.8.1_2 GNU gettext runtime libraries and programs
giflib-5.1.4 Tools and library routines for working with GIF images
git-lite-2.21.0 Distributed source code management tool (lite package)
indexinfo-0.3.1 Utility to regenerate the GNU info page index
jbigkit-2.1_1 Lossless compression for bi-level images such as scanned pages, faxes
jpeg-turbo-2.0.2 SIMD-accelerated JPEG codec which replaces libjpeg
libICE-1.0.9_3,1 Inter Client Exchange library for X11
libSM-1.2.3,1 Session Management library for X11
libX11-1.6.7,1 X11 library
libXau-1.0.9 Authentication Protocol library for X11
libXdmcp-1.1.3 X Display Manager Control Protocol library
libXext-1.3.3_3,1 X11 Extension library
libXpm-3.5.12_2 X Pixmap library
libXt-1.1.5_2,1 X Toolkit library
libedit-3.1.20181209_2,1 Command line editor library
libevent-2.1.8_3 API for executing callback functions on events or timeouts
libgd-2.2.5_1,1 Graphics library for fast creation of images
liblz4-1.8.3,1 LZ4 compression library, lossless and very fast
libnghttp2-1.37.0 HTTP/2.0 C Library
libpthread-stubs-0.4 This library provides weak aliases for pthread functions
libxcb-1.13.1 The X protocol C-language Binding (XCB) library
libxml2-2.9.8 XML parser library for GNOME
libzip-1.5.2 C library for reading, creating, and modifying ZIP archives
mod_php71-7.1.28 PHP Scripting Language
mysql56-client-5.6.43 Multithreaded SQL database (client)
oniguruma-6.9.1 Regular expressions library compatible with POSIX/GNU/Perl
mpcre-8.43 Perl Compatible Regular Expressions libraryod
perl5-5.28.1_1 Practical Extraction and Report Language
php71-7.1.28 PHP Scripting Language
php71-ctype-7.1.28 The ctype shared extension for php
php71-curl-7.1.28 The curl shared extension for php
php71-filter-7.1.28 The filter shared extension for php
php71-gd-7.1.28 The gd shared extension for php
php71-imap-7.1.28 The imap shared extension for php
php71-json-7.1.28 The json shared extension for php
php71-mbstring-7.1.28 The mbstring shared extension for php
php71-mysqli-7.1.28 The mysqli shared extension for php
php71-opcache-7.1.28 The opcache shared extension for php
php71-openssl-7.1.28 The openssl shared extension for php
php71-session-7.1.28 The session shared extension for php
php71-simplexml-7.1.28 The simplexml shared extension for php
php71-xml-7.1.28 The xml shared extension for php
php71-zip-7.1.28 The zip shared extension for php
php71-zlib-7.1.28 The zlib shared extension for php
pkg-1.10.5_5 Package manager
png-1.6.36 Library for manipulating PNG images
readline-7.0.5 Library for editing command lines as they are typed
tiff-4.0.10 Tools and library routines for working with TIFF images
vim-console-8.1.1099 Improved version of the vi editor (console only)
webp-1.0.2 Google WebP image format conversion tool
xorgproto-2018.4 xorg protocol headers

PHP Configuration

The following PHP Configuration is required.

Variable Value
allow_call_time_pass_reference on
error_reporting E_WARNING & ~E_NOTICE
safe_mode off
display_errors off
file_uploads on
max_execution_time 3600
memory_limit 512M
log_errors on
output_buffering on
register_globals off
max_input_vars 8192
short_open_tag off

Error Handling via htaccess.

Variable Value
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0

Now unzip the download archive into the destination folder of your web server.

File System Privileges

The following files and folders require read and write access (recursive). These must be set for the user under which the web server process is running (www-data or httpd or apache).

  • config.inc.php
  • tabdata.php
  • install.php
  • parent_tabdata.php
  • cache
  • storage/
  • user_privileges/
  • modules/
  • cron/
  • backup/
  • test/
  • logs/

Now unzip the download archive into the destination folder of your web server.

Web Application Firewalls (WAF)

Note, that the CRM uses so-called Ajax calls targeted "towards it self". For the web server, these calls appear as standard http requests. Due to the content/structure of these calls, it could happen that these calls are blocked by a Web Application Firewalls (WAF). As a result, some functions of the CRM might not work correctly.

If you experience any problems deactivate the WAF temporarily and / or have a look at the corresponding logs to add the necessary rules to the WAF configuration.


Now open your browser and call the installation directory, e.g.

https://192.168.0.1/berlicrm

Important: You must use "https" for an installation!

Follow the installation process in the browser:

InstallationStep1
Click on Install to start the installation process.

InstallationStep2
Click on "I Agree" to accept the license terms.

InstallationStep3
Here are some of your PHP settings checked. If no errors occur, click Next.

InstallationStep4
Enter the data for your MySQL server and administrator account.

InstallationStep5
Check and confirm your entries.

InstallationStep6
Here you can select the basic configuration of the modules of your CRM depending on your requirements. However, you can also switch individual modules on and off later in the CRM's Module Manager.

InstallationStep7
Finally, please select the default currency, language, time zone and format of your newly created administrator account.

This completes the installation. Enjoy working with berliCRM!

Link to CRM manuals

2. berliCRM Update Instructions

Until further notice, the update of released berliCRM version is simplified by the following procedure:
  • get a diff and update all berliCRM files which had been modified or added, this will apply all file changes
  • run the db_update.php in root, this will apply all data base changes
  • delete the db_update.php from root