Vtiger CRM is a popular Customer Relationship Management web application which can help enterprises grow sales, deliver customer service, and increase profits. This article will guide you through the installation of Vtiger open source edition on a Debian 10 system with the Apache web server, MariaDB, and PHP.
Prerequisites
- A newly deployed Debian 10 instance (4GB+ of memory recommended)
- Root access to your server, via SSH or console.
- A domain name pointing to your Vultr IP address.
crm.example.net
will be used as an example.
Installation
Step 1: Update the system.
First, update your system:
apt update
apt upgrade -y
Once that is done, reboot and login again:
reboot
Step 2: Setup a swap file (optional)
If your system has less than 4GB of memory, you can setup a virtual memory file to potentially improve performance. The following commands will create a 4GB swap file, instruct the system to use it as swap space, and create a corresponding entry in /etc/fstab
for automatic mounting at boot.
dd if=/dev/zero of=/swapfile bs=1k count=4M
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" | tee -a /etc/fstab
Step 3: Install Apache, PHP and MariaDB.
Use the following command to install the needed packages and tools:
apt install -y apache2 libapache2-mod-php mariadb-server mariadb-client php-imap php-curl php-xml php php-common php-mysql unzip
Once the installation is complete, make sure that the Apache and MariaDB services are enabled and running:
systemctl enable --now apache2.service mariadb.service
Step 4: Configure PHP.
Using a text editor of your choice, open the file /etc/php/7.3/apache2/php.ini
and make the following changes:
memory_limit = 512M
max_execution_time = 240
error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors = On
log_errors = Off
Step 5: Setup MariaDB.
We’ll start by securing our MariaDB installation using the command:
mysql_secure_installation
Answer all of the questions as shown below and be sure to choose a strong password for the root user:
Enter current password for root: Press :key_enter:
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
We’ll now create a database and a MariaDB user, both of which will be dedicated to the Vtiger web application. Login to the MySQL CLI (mysql -u root -p
) and use the following commands:
CREATE DATABASE vtigercrm;
CREATE USER 'vtigercrm'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON vtigercrm.* TO 'vtigercrm'@'localhost';
QUIT;
Next, open the file /etc/mysql/my.cnf
in a text editor and add the following lines:
[mysqld]
sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Save the changes and restart MariaDB:
systemctl restart mariadb.service
Step 6: Download Vtiger CRM:
Go to the Vtiger download page and click “Download Open Source”, then copy the download link for the latest stable TAR.GZ version, and download it on your server:
cd /tmp
wget -O vtiger.tgz DOWNLOAD_LINK
For example:
wget -O vtiger.tgz https://sourceforge.net/projects/vtigercrm/files/vtiger%20CRM%207.1.0/Core%20Product/vtigercrm7.1.0.tar.gz/
Go back to the download page and copy the download link for any corresponding hotfix package, and download it as well:
wget -O hotfix.zip https://sourceforge.net/projects/vtigercrm/files/vtiger%20CRM%207.1.0/Core%20Product/Hotfixes/vtigercrm7.1.0-hotfix2.zip/download
Now unpack and move the directory to the web root:
tar -xzf vtiger.tgz
rm vtiger.tgz
mv vtigercrm/ /var/www/
Apply the hotfix:
unzip -o -f -d /var/www/vtigercrm hotfix.zip
rm hotfix.zip
Since write permissions are needed, we’ll give the apache process user ownership of the directory:
chown -R www-data:www-data /var/www/vtigercrm
Due do what appears to be a minor bug in the open source version of Vtiger, it will incorrectly report the PHP error_reporting
directive as NOT RECOMMENDED
. To resolve this, open the file /var/www/vtigercrm/modules/Install/views/Index.php
in a text editor such as vim or nano, and find the following line (32):
version_compare(PHP_VERSION, '5.5.0') <= 0 ? error_reporting(E_ERROR & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(E_ERROR & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
Replace it with:
version_compare(PHP_VERSION, '5.5.0') <= 0 ? error_reporting(E_ERROR & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & E_WARNING);
Step 7: Apache configuration.
Before configuring Apache, let’s obtain an SSL certificate from “Let’s Encrypt” using certbot:
apt install -y certbot
certbot certonly --webroot --agree-tos -m youremail@domain.tld -d crm.example.net
When prompted to input the webroot for your domain, type in /var/www/html
. Certbot will verify that you own your domain and that it correctly resolves to your server’s IP address before creating and saving your certificate and key file.
To keep things organized, create two configurations files for your VtigerCRM instance, vtigercrm80.conf
and vtigercrm443.conf
for HTTP and HTTPS, respectively. Both files should be created in /etc/apache2/sites-available
.
nano /etc/apache2/sites-available/vtigercrm80.conf
And paste the following, which will instruct Apache to redirect all incoming HTTP requests to HTTPS :
<VirtualHost *:80>
DocumentRoot /var/www/vtigercrm
ServerName crm.example.net
ErrorLog /var/log/apache2/vtigercrm-error.log
CustomLog /var/log/apache2/vtigercrm-access.log common
RewriteEngine on
RewriteCond %{SERVER_NAME} =crm.example.net
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
For the HTTPS version:
nano /etc/apache2/sites-available/vtigercrm443.conf
Below is a sensible configuration that you can tweak if you have more specific needs:
<VirtualHost *:443>
DocumentRoot /var/www/vtigercrm
ServerName crm.example.net
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/crm.example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/crm.example.net/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
<Directory /var/www/vtigercrm>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/vtigercrm-error.log
CustomLog /var/log/apache2/vtigercrm-access.log common
</VirtualHost>
Enable both virtual host files:
a2ensite vtigercrm80.conf
a2ensite vtigercrm443.conf
And enable the rewrite and SSL apache modules:
a2enmod rewrite
a2enmod ssl
Finally, restart the apache service to apply changes:
systemctl restart apache2.service
Step 8: Web Installation Wizard
Navigate to https://crm.example.net/
, you’ll be greeted with the installation wizard. Click “Install” to begin, and follow these steps:
1. First, you’ll have to agree to the Vtiger Public License before proceeding.
2. The wizard will check your PHP configuration. All tests should pass if you followed this guide. Click “Next”
3. You’ll be asked to enter your database information:
- Host Name:
localhost
- User Name:
vtigercrm
- Password: The password you chose during user creation in the MySQL console.
- Database Name:
vtigercrm
- Create new database: Yes. (Check the checkbox. Even though we already create a database, this currently is required in order for the installer to create all tables.)
- Root User Name:
vtigercrm
- Root Password: The password you chose during user (
vtigercrm
) creation in the MySQL console. Do not enter the password for the root user.
The system information and admin user information forms should be filled according to your requirements.
4. Confirm your configuration and proceed.
5. Specify your industry and click “Next”. The wizard will begin the setup process, which may take some time.
6. Select the features you’d like to enable. The installation process is now complete.
Hello,
thanks for this Guide. It Works.
But the create Workflow button doesnt work. Can you help?
Thx