Install SuiteCRM (Customer Relationship Management) in Linux

CRM (Customer Relationship Management) refers to assortment of practices, policies and technologies that companies use to handle and review interaction with current and potential customers; with the major aim of boosting business relationships with customers, customer retention and driving sales growth.

SuiteCRM is a free and open source, fully-featured and highly-extensible CRM system that runs on any operating system with PHP installed. It is a fork of the well known open source SugarCRM Community Edition.

Do try out SuiteCRM Demo using credentials below to sign in:

Username: will 
Password: will

SuiteCRM Features:

  • Cross-platform: runs on Linux, Windows, Mac OSX and any system that runs PHP.
  • Efficient, powerful, and flexible workflow module.
  • Supports automation of repetitive tasks.
  • Supports quick and easy modeling of sales pipeline.
  • Enables creation of beautifully templated Quotations.
  • Allows managing of pricing strategies.
  • Supports customer self-service via an easy to setup and use website.
  • Instant notification of customer issues plus so much more.

Requirements:

  • Debian/Ubuntu or CentOS system installed with LAMP Stack.
  • PHP (JSON, XML Parsing, MB Strings, ZIP Handling, IMAP, cURL) modules.
  • ZLIB Compression library.
  • Sprite support.

In this article, we will explain how to install and configure SuiteCRM in CentOS/RHEL 7 and Debian/Ubuntu based systems.

Step 1: Installing LAMP Stack Environment

1. First update the system software packages to the latest version.

$ sudo apt update        [On Debian/Ubuntu]
$ sudo yum update        [On CentOS/RHEL] 

2. Once software packages updated, now you can install LAMP (Linux, Apache, MySQL & PHP) stack with all the required PHP modules as shown.

-------------- On Debian/Ubuntu -------------- 
$ sudo apt install apache2 apache2-utils libapache2-mod-php php php-common php-curl php-xml php-json php-mysql php-mbstring php-zip php-imap libpcre3 libpcre3-dev zlib1g zlib1g-dev mariadb-server

-------------- On CentOS/RHEL/Fedora -------------- 
# yum install httpd php php-common php-curl php-xml php-json php-mysql php-mbstring php-zip php-imap pcre pcre-devel zlib-devel mariadb-server

3. Once LAMP stack has been installed, start the Apache and MariaDB service and enable it to start automatically at system boot.

-------------- On Debian/Ubuntu -------------- 
$ sudo systemctl start apache mysql
$ sudo systemctl enable apache mariadb

-------------- On CentOS/RHEL/Fedora -------------- 
# systemctl start httpd mysql
# systemctl enable httpd mariadb

4. Now secure and harden database server installation by running the script below.

$ sudo mysql_secure_installation
OR
# mysql_secure_installation

After running the security script above, you will be asked to enter the root password, simply press [Enter] without providing it:

Enter current password for root (enter for none):

Again, you will also be asked to answer the questions below, simply type y to all the questions to set a root password, remove anonymous users, turn off remote root login, remove the test database and reload privilege tables:

Set root password? [Y/n] y 
Remove anonymous users? [Y/n] y 
Disallow root login remotely? [Y/n] y 
Remove test database and access to it? [Y/n] y 
Reload privilege tables now? [Y/n] y

5. Now you need to configure PHP to allow files of at least 6MB to be uploaded. Open your PHP configuration file (/etc/php.ini or /etc/php5/apache2/php.ini) with your choice of editor, search for the upload_max_filesize and set it like so.

upload_max_filesize = 6M

Save the file and close it, then restart the HTTP server.

$ sudo systemctl restart apache   [On Debian/Ubuntu]
# systemctl restart httpd         [On CentOS/RHEL]   

Step 2: Create SuiteCRM Database

6. In this step, you can create a database which will store data for suiteCRM. Run the command below to access the MariaDB shell (remember to use your own values for the database name, user and password).

$ mysql -u root -p
MariaDB [(none)]> CREATE DATABASE suitecrm_db;
MariaDB [(none)]> CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'crmsys@dmin$12';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;

Step 3: Install and Setup SuiteCRM

7. First install Git to fetch and clone the latest version of SuiteCRM from its Github repository under Apache root directory (/var/www/html/) with appropriate permissions on the SuiteCRM folder.

$ sudo apt -y install git      [On Debian/Ubuntu]
$ sudo yum -y install git      [On CentOS/RHEL]

$ cd /var/www/html
$ git clone https://github.com/salesagility/SuiteCRM.git
$ sudo mv SuiteCRM suitecrm
$ sudo chown -R www-data:www-data suitecrm   [On Debian/Ubuntu]
$ sudo chown -R apache:apache suitecrm       [On CentOS/RHEL]
$ sudo chmod -R 755 suitecrm
$ ls -ld suitecrm

8. Now open your web browser and type the URL below to access the SuiteCRM web installer wizard.

http://SERVER_IP/suitecrm/install.php
OR
http://localhost/suitecrm/install.php

You will see the welcome page, which includes the SuiteCRM License Agreement. Read the license and check “I Accept”, and set the installation language. Click Next to continue.

SuiteCRM Web Installer
SuiteCRM Web Installer

9. You will see the pre-installation requirements page below. If everything is fine as shown in the screenshot below, click Next to proceed.

SuiteCRM System Environment Check
SuiteCRM System Environment Check

11. Next, provide the SuiteCRM database settings (database name, host, username and password).

SuiteCRM Database Settings
SuiteCRM Database Settings

In the same page, enter the site configurations (site name, admin username, password and email address).

You can as well configure more options:

  • Demo data (choose yes if you want to populate site with demo data).
  • Scenario selection – such as sales, marketing etc.
  • SMTP server specification – choose your Email provider, SMTP server, port, user authentication details.
  • Branding details – Organization name and logo.
  • System locale settings – date format, time format, timezone, currency, currency symbol and ISO 4217 Currency Code.
  • Site security settings.

Once you are done, click Next to start the actual installation process where the installer will create database tables and default settings.

SuiteCRM Site Configuration
SuiteCRM Site Configuration

12. Once the installation is complete, you are ready to login. Provide the admin username and password, then click on “Log In”.

SuiteCRM Login Interface
SuiteCRM Login Interface
SuiteCRM Dashboard
SuiteCRM Dashboard

SuiteCRM Homepage: https://suitecrm.com/

Enjoy! For any queries or thoughts that you want to share, please hit us up via the comment section below.

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

8 thoughts on “Install SuiteCRM (Customer Relationship Management) in Linux”

  1. Hi,

    I’ve built an Ubuntu virtual machine on Parallels (run-on on MacBook pro). I’ve followed the above instructions until I get to:

    $ sudo systemctl restart apache
    

    which I believe should be:

    $ sudo systemctl restart apache2
    

    Also, the edit of the php.ini file I found to be /etc/php/7.2/apache2/php.ini and at /etc/php.ini or /etc/php5/apache2/php.ini as stated above.

    Minor niggles and easy to overcome. But, I’m hitting a brick wall with MySQL to create the database. I’m getting ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

    I’ve re-run the MySQL-secure-installation script to make sure I have the correct password. I’ve rebooted the virtual machine to ensure nothing is cached. Still no joy :-(

    Any pointers?

    Reply
    • I got around the above by using sudo mysql in place of mysql -u root -p.

      Next problem is that when I put this http:///suitecrm/install.php into my browser window, I only get the following message:

      Composer autoloader not found. please run "composer install"
      

      So, I first install composer:

      $ sudo apt install composer
      

      And then run:

      $ composer install
      

      This produces the error:

      Composer could not find a composer.json file in /var/www/html.
      To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ “Getting Started” section

      Now I’m definitely stuck!

      Regards

      Pip

      Reply
    • @Pip,

      Yes, it should be:
      sudo systemctl restart apache2

      It is because there are two PHP versions running on the system 7.1 and 5, better you should check which version currently running with php -v command.

      Reply
        • @Pip,

          You can remove PHP 5, if you not needed and follow the instructions again carefully..

          Things to edit in php.ini:

          nano /etc/php/7.2/apache2/php.ini
          upload_max_size = 16MB (or bigger)
          memory_limit=512M
          fix error_reporting, add & ~E_STRICT
          date.timezone = "Europe/Lisbon"
          

          Restart apache to apply PHP configuration settings..

          Reply
  2. Tried this on Ubuntu 16.04.2 server. First the apache package is now named apache2. Second libapache2-mod-php is missing which results in apache only showing the php code instead of the install wizard.

    After fixing both problems the wizard starts but on second screen says the the database drivers are not installed or not enabled. Following the hint to uncomment the extension in php.ini did not resolve the problem.

    No additional hints found to resolve this.

    Reply
    • @Ulrich,

      Thanks for your detailed findings, we’ve corrected the instructions as per your suggestion, and included installation instructions for apache2,libapache2-mod-php and php-mysql (database driver) in the article.

      Reply

Leave a Reply to Pip Cancel reply

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.