New: We created a small requirements test/check script. You can
download the script, rename it to
systemRequirementsCheck.php, put it in the DocRoot of your CRM installation and call it via your
browser. It
should look similar
like this:
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: v7.4.x (berliCRM Tag v1.0.34 or better), v8.3.x (not public yet, beta)
- 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):
Parameter |
Value |
SQL_MODE |
STRICT_TRANS_TABLE has to be deactivated, IGNORE_SPACE, NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION |
ENGINE=InnoDB |
must be active (do not use --skip-innodb) |
innodb_strict_mode |
must be inactive (SET innodb_strict_mode = 0) |
DATABASE CHARACTER SET |
should be utf8mb4 (utf8mb3 or utf8 might work as well) |
DATABASE COLLATION |
must be utf8_unicode_ci or utf8mb3_unicode_ci
*_unicode_ci is based on the official Unicode rules for universal sorting and
comparison, which sorts accurately in a wide range of languages.
*_general_ci is a simplified set of sorting rules which aims to do as well as it can
while taking many short-cuts designed to improve speed. It does not follow the Unicode rules
and will result in undesirable sorting or comparison in some situations, such as when using
particular languages or characters.
On modern servers, this performance boost will be all but negligible. It was devised in a
time when servers had a tiny fraction of the CPU performance of today's computers.
|
Required 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
- bcmath
PHP Packages for FreeBSD 12.0 only
(community recommendation see CRM Forum)
The following PHP Extensions and system packages 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
Required PHP Configuration
The following PHP Configuration is required.
Variable |
Value |
error_reporting |
E_WARNING & ~E_NOTICE |
display_errors |
off |
file_uploads |
on |
max_execution_time |
3600 |
memory_limit |
512M |
log_errors |
on |
output_buffering |
on |
max_input_vars |
8192 |
short_open_tag |
off |
default_charset |
UTF-8 |
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 |
Installation
Unzip the download archive into the destination folder of your web server.
Required 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).
- tabdata.php
- parent_tabdata.php
- cache
- storage/
- user_privileges/
- modules/
- cron/
- backup/
- test/
- logs/
Web Application Firewalls (WAF) settings (if
you have one)
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.
Start installation via your browser
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:
Installation Step 1
Click on Install to start the installation process.
Installation Step 2
Click on "I Agree" to accept the license terms.
Installation Step 3
Here are some of your PHP settings checked. If no errors occur, click Next.
Installation Step 4
Enter the data for your MySQL server and administrator account.
Installation Step 5
Check and confirm your entries.
Installation Step 6
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.
Installation Step 7
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