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.


  • 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
# 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 '[email protected]$12';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
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
$ 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.


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:

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

Tutorial Feedback...
Was this article helpful? If you don't find this article helpful or found some outdated info, issue or a typo, do post your valuable feedback or suggestions in the comments to help improve this article...

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

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?

    • 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 “Getting Started” section

      Now I’m definitely stuck!



    • @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.

        • @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)
          fix error_reporting, add & ~E_STRICT
          date.timezone = "Europe/Lisbon"

          Restart apache to apply PHP configuration settings..

  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.

    • @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.


Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.