SuiteCRM is a free, open-source and community supported fork of popular proprietary customer relationship management software SugarCRM. SuiteCRM project was started when SugarCRM decided to stop development of its open-source version in Feb 2014. SuitCRM has various sales, marketing and customer support and automation features. SuiteCRM is a free alternative to Salesforce, MS Dynamics, SugarCRM, etc.
In this article, we will perform SuiteCRM 7.11 installation on CentOS 7 server. First, we will install and configure the SuiteCRM prerequisites and then we will use its web-based installer to configure SuiteCRM 7.11 on CentOS 7 server.
Table of Contents:
- SuiteCRM Features
- System Requirements
- Environment Specification
- Installing MariaDB Database Server
- Installing Apache Web Server
- Installing PHP Support
- Install SuiteCRM Prerequisites
- Installing SuiteCRM on CentOS 7
SuiteCRM Features:
SuiteCRM's functionality includes sales-force automation, marketing campaigns, customer support, collaboration, Mobile CRM, Social CRM and reporting.
For complete detail about SuiteCRM features visit their official website.
System Requirements:
For complete list of prerequisites please see Compatibility Matrix
Environment Specification:
We have configured a CentOS 7 based virtual machine with following specifications.
- Hostname - suitecrm-01.example.com
- IP Address - 192.168.116.175 / 24
- Operating System - CentOS 7.6
- Database - MariaDB 5.5
- Web Server - Apache 2.4
- PHP - PHP 7.2
Installing MariaDB Database Server:
Connect with suitecrm-01.example.com using ssh as root user.
MariaDB 5.5 database server is supported by SuiteCRM 7.11, we can easily install it using yum command because it is available via base yum repository.
If you want to install a latest version of MariaDB database server then you can follow our previous article Installing MariaDB 10.3 Server on CentOS 7.
# yum install -y mariadb-server
Enable and start MariaDB service.
# systemctl enable mariadb.service Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. # systemctl start mariadb.service
Configure MariaDB server as follows.
# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Installing Apache Web Server:
Install Apache Web Server using yum command.
# yum install -y httpd
Enable and start httpd.service.
# systemctl enable httpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. # systemctl start httpd.service
Allow Apache web service in Linux firewall.
# firewall-cmd --permanent --add-service=http success # firewall-cmd --reload success
Installing PHP Support:
SuiteCRM 7.11 supports PHP 7.1 or later, which is not available in default yum repositories.
Therefore, we need to add a third party yum repository like webtatic to install a latest version of PHP.
But first we need to add EPEL (Extra Packages for Enterprise Linux) yum repository.
# yum install -y epel-release.noarch
Add webtatic yum repository using following commands.
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
warning: /var/tmp/rpm-tmp.ztLHoc: Header V4 RSA/SHA1 Signature, key ID 62e74ca5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:webtatic-release-7-3 ################################# [100%]
Build yum cache for newly added repositories.
# yum makecache fast
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 7.5 kB 00:00
* base: ftp3.isra.edu.pk
* epel: mirror.xeonbd.com
* extras: mirrors.ges.net.pk
* updates: ftp3.isra.edu.pk
* webtatic: uk.repo.webtatic.com
base | 3.6 kB 00:00
epel | 5.3 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
webtatic | 3.6 kB 00:00
(1/5): webtatic/x86_64/group_gz | 448 B 00:01
(2/5): epel/x86_64/group_gz | 88 kB 00:01
(3/5): webtatic/x86_64/primary_db | 160 kB 00:03
(4/5): epel/x86_64/updateinfo | 977 kB 00:11
(5/5): epel/x86_64/primary_db | 6.8 MB 00:51
Metadata Cache Created
Install PHP and relevant packages using yum command.
# yum install -y php72w php72w-common php72w-xml php72w-mysql php72w-mbstring php72w-imap php72w-gd php-curl php-json php-zip
As required by SuiteCRM server, increase the upload_max_filesize in php.ini file.
# vi /etc/php.ini
Find and set the upload_max_filesize as follows.
upload_max_filesize = 8M
Restart httpd.service to reload configurations.
# systemctl restart httpd.service
Install SuiteCRM Prerequisites:
We required a few more packages for installation of SuiteCRM 7.11 on CentOS 7.
Therefore, we are installing these packages using yum command.
# yum install -y pcre pcre-devel zlib-devel gd wget policycoreutils-python unzip
Installing SuiteCRM on CentOS 7:
SuiteCRM 7.11 is available to download from SuiteCRM Official website.
# cd /tmp # wget https://suitecrm.com/files/162/SuiteCRM-7.11/435/SuiteCRM-7.11.5.zip --2019-06-14 21:05:00-- https://suitecrm.com/suitecrm/index.php?option=com_dropfiles&format=&task=frontfile.download&catid=162&id=435&Itemid=1000000000000 Reusing existing connection to suitecrm.com:443. HTTP request sent, awaiting response... 200 OK Length: 58853232 (56M) [application/octet-stream] Saving to: âSuiteCRM-7.11.5.zip.1â 100%[======================================>] 58,853,232 442KB/s in 2m 46s 2019-06-14 21:07:47 (345 KB/s) - âSuiteCRM-7.11.5.zip.1â saved [58853232/58853232]
Extract downloaded file in Apache document root using unzip command.
# unzip SuiteCRM-7.11.5.zip -d /var/www/html/
...
inflating: /var/www/html/SuiteCRM-7.11.5/modules/AOD_Index/Lib/Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum/CaseInsensitive.php
creating: /var/www/html/SuiteCRM-7.11.5/modules/AOD_Index/Lib/Zend/Search/Lucene/Analysis/Analyzer/Common/Text/
inflating: /var/www/html/SuiteCRM-7.11.5/modules/AOD_Index/Lib/Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php
finishing deferred symbolic links:
/var/www/html/SuiteCRM-7.11.5/vendor/bin/update-psl -> ../jeremykendall/php-domain-parser/bin/update-psl
/var/www/html/SuiteCRM-7.11.5/vendor/bin/parse -> ../jeremykendall/php-domain-parser/bin/parse
/var/www/html/SuiteCRM-7.11.5/vendor/bin/generate-defuse-key -> ../defuse/php-encryption/bin/generate-defuse-key
/var/www/html/SuiteCRM-7.11.5/vendor/bin/validate-json -> ../justinrainbow/json-schema/bin/validate-json
/var/www/html/SuiteCRM-7.11.5/vendor/bin/robo -> ../consolidation/robo/robo
/var/www/html/SuiteCRM-7.11.5/vendor/bin/release -> ../consolidation/self-update/scripts/release
Rename /var/www/html/SuiteCRM-7.11.5 to a relatively simple name to access it conveniently via web browser.
# cd /var/www/html/ # mv SuiteCRM-7.11.5/ suitecrm
Adjust file permissions on /var/www/html/suitecrm directory.
# cd suitecrm/ # chown -R apache:apache . # sudo chmod -R 755 . # chmod -R 775 cache custom modules themes data upload # chmod 775 config_override.php 2>/dev/null
Since we are configuring SuiteCRM server without disabling the SELinux, therefore we have to set proper SELinux file contexts according to SuiteCRM server requirements.
Adjust SELinux file contexts as required by SuiteCRM installer.
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/custom(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/cache(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/modules(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/upload(/.*)?' # restorecon -R .
Create config.php and make it writable by apache user.
# touch config.php # chown apache:apache config.php # chmod 775 config.php # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/config.php' # restorecon -R .
Create .htaccess file and make it writable by apache user.
# touch .htaccess # chown apache:apache .htaccess # chmod 775 .htaccess # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/suitecrm/.htaccess' # restorecon -R .
Since, SuiteCRM is deployed on Apache web server. We can now access it to run SuiteCRM setup.
Browse URL http://suitecrm-01.example.com/suitecrm/install.php using a client's browser.
Accept the GNU GPL License and click on Next.
If you have performed all the configurations correctly, then you won't see any warning on this page. Otherwise, you have to resolve those warnings one by one.
Note down the SuiteCRM scheduler configurations, as mentioned in this page. We will configure it after SuiteCRM installation.
Click on Next.
We are now at Database and Site Configurations page. We have defined database name, database user and SuiteCRM Admin’s password here.
A MariaDB Database and a database user will be created by SuiteCRM installer.
Click on Next.
Setup has been completed.
Click on Next.
Login as admin user.
You are now reached at the dashboard of SuiteCRM.
Configure SuiteCRM scheduler as follows.
# crontab -e -u apache
and add following line.
* * * * * cd /var/www/html/suitecrm; php -f cron.php > /dev/null 2>&1
We have successfully installed SuiteCRM 7.11 on CentOS 7.
To start using SuiteCRM, we recommend you to read SugarCRM A Complete Guide - 2019 Edition. Although this book is about SugarCRM, but can be used for SuiteCRM as well.