How to install vTiger CRM on Linux 8

Share on Social Media

In this guide, you will learn how to install vTiger CRM on Linux 8 or other RPM based distros. #centlinux #linux #crm

What is vTiger CRM?:

vTiger is an Indian software company headquartered in Bangalore, India. vTiger is known for its CRM (Customer Relationship Management) software that centralizes customer data and increases sales. vTiger aims at improving the retention rate by analytically generating insights for the clients which helps in nurturing customer relations.

vTiger CRM offers a comprehensive suite of enterprise applications that integrates marketing, sales, and support teams with an increased engagement to manage sales, multi-channel help desk, marketing automation tools and insights to manage the business in sync.

vTiger has over 300,000+ clientele globally, including Propel, Breezway, Lenskart and Russair. The company markets their product as “all-in-one” CRM software fragmented for customer view.(Source: Wikitia)

vTiger CRM Features:

The CRM software tools provided by vTiger focus on maintaining the influx of leads alongside providing personalized analytical solutions to the customers to build up their business. The primary fields targeted by CRM software are contact management, sales management, and customer support. It has a system for managing projects and automatically tracking inventory stock against invoices created in the system. The software supports multiple languages, including French, German, and Spanish. Through browser addons, vTiger CRM can be integrated with Microsoft Outlook, Microsoft Office, and Mozilla Thunderbird. It is known for saving time administering, accelerating collaboration, expanding automation and improving insights supported by data to convert leads into business conversions.

Environment Specification:

We are using a minimal Rocky Linux 8 virtual machine with following specifications.

  • CPU – 3.4 Ghz (2 cores)
  • Memory – 2 GB
  • Storage – 20 GB
  • Operating System – Rocky Linux 8.5 (Green Obsidian)
  • Hostname – vtiger-01.centlinux.com
  • IP Address – 192.168.116.128 /24

Update your Rocky Linux Server:

Connect with vtiger-01.centlinux.com as root user by using a ssh client.

Update cache of yum repositories in your Linux server.

# dnf makecache
Rocky Linux 8 - AppStream                       599 kB/s | 9.5 MB     00:16
Rocky Linux 8 - BaseOS                          304 kB/s | 5.6 MB     00:18
Rocky Linux 8 - Extras                          4.3 kB/s |  12 kB     00:02
Metadata cache created.

Update software packages of your Linux operating system by executing following command.

# dnf update -y

You may need to reboot your operating system, if the above command updates your Linux Kernel.

# reboot

Check the Linux operating system and Kernel versions.

# uname -r
4.18.0-348.12.2.el8_5.x86_64

# cat /etc/rocky-release
Rocky Linux release 8.5 (Green Obsidian)

Install Apache Web Server:

vTiger CRM is developed in PHP programming language.

Therefore, it requires a LAMP (Linux, Apache, MySQL & PHP) or LEMP (Linux, Nginx, MySQL & PHP) server for deployment. You can install your favorite Web Server for vTiger CRM.

Here, we are installing Apache because it’s configurations are simple, straight forward and it fulfills the requirement of this installation guide.

Execute dnf command to install Apache web server.

# dnf install -y httpd

Enable and start Apache web service.

# systemctl enable --now httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Allow the Apache default service port 80/tcp in Linux firewall.

# firewall-cmd --permanent --add-service=http
success

# firewall-cmd --reload
success

Check the version of Apache by executing following command.

# httpd -v
Server version: Apache/2.4.37 (rocky)
Server built:   Jan 25 2022 16:26:44

Install MariaDB Database Server:

vTiger CRM requires MySQL RDBMS to create it’s database repository.

We are installing the MariaDB database server, the most popular variant of MySQL, on our Linux server. But you can use MySQL or Percona as well.

# dnf install -y mariadb-server

Enable and start MariaDB database service.

# systemctl enable --now mariadb.service
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

Configure initial security settings for your MariaDB server by executing following command at Linux Bash prompt.

# 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!

Login to MariaDB server as root user by using mysql command.

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 17
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]>

Create a Database and User for vTiger CRM with necessary privileges as follows.

MariaDB [(none)]> CREATE DATABASE vtigerdb DEFAULT CHARSET utf8;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER vtiger@localhost IDENTIFIED BY '123';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON vtigerdb.* TO vtiger@localhost;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> EXIT
Bye

Edit MariaDB configuration file by using vim text editor.

# vi /etc/my.cnf.d/mariadb-server.cnf

As mentioned in vTigerCRM manual, add following directive under [mysqld] section.

sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

Restart MariaDB service to apply changes.

# systemctl restart mariadb.service

Install PHP on Rocky Linux 8:

vTiger CRM requires PHP 7.2 or later (with a couple of extension).

PHP 7.2 is available in standard yum repositories, but it lacks some of the required extensions.

Therefore, we are installing Remi Yum Repository, so you can install PHP along with all required extensions.

# dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Rebuild cache for yum repositories.

# dnf makecache
Rocky Linux 8 - AppStream                       2.0 kB/s | 4.8 kB     00:02
Rocky Linux 8 - BaseOS                          1.1 kB/s | 4.3 kB     00:03
Rocky Linux 8 - Extras                          1.7 kB/s | 3.5 kB     00:01
Extra Packages for Enterprise Linux 8 - x86_64  745 kB/s |  11 MB     00:15
Extra Packages for Enterprise Linux Modular 8 - 126 kB/s | 979 kB     00:07
Remi's Modular repository for Enterprise Linux  3.0 MB/s | 3.1 kB     00:00
Importing GPG key 0x5F11735A:
 Userid     : "Remi's RPM repository <remi@remirepo.net>"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
Is this ok [y/N]: y
Remi's Modular repository for Enterprise Linux  256 kB/s | 970 kB     00:03
Safe Remi's RPM repository for Enterprise Linux 472  B/s | 833  B     00:01
Safe Remi's RPM repository for Enterprise Linux 3.0 MB/s | 3.1 kB     00:00
Importing GPG key 0x5F11735A:
 Userid     : "Remi's RPM repository <remi@remirepo.net>"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
Is this ok [y/N]: y
Safe Remi's RPM repository for Enterprise Linux 395 kB/s | 2.1 MB     00:05
Metadata cache created.

Install PHP 7.4 module on your Rocky Linux server by using following command.

# dnf module -y install php:remi-7.4

Install required PHP extensions as follows.

# dnf install -y php php-common php-mysql php-xml php-imap php-mbstring php-mcrypt php-gd

Edit PHP configuration file in vim text editor.

# vi /etc/php.ini

Find and set following directives as required by vTiger CRM.

memory_limit = 256M
upload_max_filesize = 64M
short_open_tag = Off
max_execution_time = 60
log_errors = Off
display_errors = Off
error_reporting = E_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

Install vTiger CRM on Linux 8:

You are required the git command to clone vTiger open source software from GitHub.

Therefore, execute dnf command to install git on your Linux machine.

# dnf install -y git

Now, by using git command, create a clone from GitHub within Apache document root directory.

# cd /var/www/html/
# git clone https://code.vtiger.com/vtiger/vtigercrm.git
Cloning into 'vtigercrm'...
remote: Counting objects: 38995, done.
remote: Compressing objects: 100% (16874/16874), done.
remote: Total 38995 (delta 22595), reused 35596 (delta 20526)
Receiving objects: 100% (38995/38995), 150.82 MiB | 858.00 KiB/s, done.
Resolving deltas: 100% (22595/22595), done.
Updating files: 100% (11096/11096), done.

Adjust the file ownership for downloaded vTiger software.

# chown apache:apache -R /var/www/html/vtigercrm

Set required Apache configuration by executing following command at Linux Bash prompt.

# sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Restart Apache web servvice to apply changes.

# systemctl restart httpd.service

Usually Linux System administrators prefers to disable SELinux, while installing vTiger CRM software.

But it is definitely a bad practice, because by disabling SELinux you removed a complete Security Layer of your Linux server.

We prefer to set the necessary SELinux File Contexts to workaround it.

You need semanage command to configure SELinux policy, therefore, execute following command to install it.

# dnf install -y policycoreutils-python-utils

Add a SELinux File Context for vTiger by using semanage command and then apply the policy to the directory with the help of restorecon command.

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/vtigercrm(/.*)?'
# restorecon -RF /var/www/html/vtigercrm

Access vTiger Web Installer:

vTiger web application has been deployed successfully. Now invoke the web installer by opening the URL: http://vtiger-01.centlinux.com/vtigercrm/ in a web browser.

vTiger CRM Web Installer Welcome Page

Click on “Install”.

vTiger CRM Software License

Click on “I Agree”.

vTiger CRM Instllation Prerequiites

Ignore the “log_errors” warning and Click on “Next”.

vTiger CRM System Configuration

Provide the vTiger system configurations as mentioned in the above screenshot.

Click on “Next”.

vTiger CRM Confirm Configuration Settings

Confirm System configuration by clicking on “Next”.

vTiger CRM Choose your Industry

Choose your Industry from the dropdown menu and click on “Next”.

vTiger CRM Installation Progress

vTiger installation is in Progress now.

vTiger CRM Login Page

After installation you have reached at the vTiger login screen.

Login as admin user.

vTiger CRM Web Installer Features Selection

Select the features that you want to enable in your vTiger Application.

vTiger CRM Regional Settings

Select the currency / timezone preferences and click on “Get Started”.

vTiger CRM Dashboard

You have reached at the vTiger Dashboard.

Conclusion:

In this guide, you have learned how to install vTiger CRM on Linux 8 or other RPM based distros.

Scroll to Top