AlmaLinuxRHEL Based

How To Install Vtiger CRM on AlmaLinux 10

Install Vtiger CRM on AlmaLinux 10

Vtiger CRM stands as one of the most powerful open-source customer relationship management solutions for businesses seeking comprehensive tools without enterprise-level costs. This robust CRM platform has earned its reputation through years of helping organizations streamline sales, marketing, and customer service operations. If you’re running AlmaLinux 10, you’re working with an enterprise-grade Linux distribution that provides excellent stability and security for hosting business-critical applications.

This comprehensive guide walks you through every step of installing Vtiger CRM on AlmaLinux 10. You’ll configure Apache web server, set up MariaDB database, install PHP with necessary extensions, and deploy Vtiger through its web-based installation wizard. By the end, you’ll have a fully functional CRM system ready to transform how your business manages customer relationships.

What is Vtiger CRM?

Vtiger CRM is an open-source customer relationship management platform that combines sales automation, marketing tools, customer support features, and inventory management into one unified system. The software has been downloaded over 5 million times and integrates with more than 500 applications, making it one of the most versatile CRM solutions available.

The platform offers both open-source and cloud-hosted versions. The open-source edition provides complete control over your data and infrastructure, perfect for organizations with specific security or compliance requirements. Core features include contact management, lead tracking, opportunity management, email marketing campaigns, help desk ticketing, project management, and detailed analytics dashboards.

Small to medium-sized businesses particularly benefit from Vtiger’s balance between functionality and ease of use. The system scales effectively as your organization grows, supporting multiple users, custom workflows, and extensive customization options.

Prerequisites and System Requirements

Server Requirements

Your AlmaLinux 10 server should meet these minimum specifications for optimal Vtiger CRM performance:

  • AlmaLinux 10 operating system (freshly installed or updated)
  • Minimum 2GB RAM (4GB recommended for production environments)
  • At least 20GB available disk space
  • Root or sudo user access with administrative privileges
  • Stable internet connection for downloading packages
  • Domain name or static IP address for accessing the CRM

Software Requirements

Vtiger CRM requires a complete LAMP stack with specific versions and configurations:

  • Apache 2.4 or higher web server
  • MySQL 5.7+ or MariaDB 10.3+ database server
  • PHP 7.3 or higher (PHP 8.0+ recommended for better performance)
  • Required PHP extensions: php-mysqlnd, php-imap, php-curl, php-xml, php-gd, php-mbstring, php-zip
  • PHP memory limit set to minimum 256MB

MySQL Configuration Requirements

Your MySQL or MariaDB installation must have these settings configured:

  • storage_engine set to InnoDB
  • local_infile enabled (set to ON)
  • sql_mode configured as NO_ENGINE_SUBSTITUTION

Step 1: Update AlmaLinux 10 System

Before installing any software, update your system packages to ensure you have the latest security patches and bug fixes. Open your terminal and execute:

sudo dnf update -y
sudo dnf upgrade -y

This command updates the package repository cache and upgrades all installed packages to their newest versions. The process may take several minutes depending on your internet connection and the number of packages requiring updates. If kernel updates were applied during this process, reboot your server to ensure all changes take effect properly.

Step 2: Install Apache Web Server

Apache httpd serves as the foundation of your web server infrastructure. Install it using the DNF package manager:

sudo dnf install httpd -y

After installation completes, start the Apache service and enable it to launch automatically on system boot:

sudo systemctl start httpd
sudo systemctl enable httpd

Verify Apache is running correctly:

sudo systemctl status httpd

The status should display “active (running)” in green text.

Configure Firewall for Web Traffic

AlmaLinux’s firewall blocks incoming HTTP and HTTPS connections by default. Open these ports to allow web traffic:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

The permanent flag ensures these rules persist across system reboots. Test your Apache installation by opening a web browser and navigating to your server’s IP address. You should see the default Apache welcome page confirming successful installation.

Step 3: Install and Configure MariaDB Database

Install MariaDB Server

MariaDB provides a reliable, high-performance database backend for Vtiger CRM. Install the MariaDB server package:

sudo dnf install mariadb-server -y

Start and enable the MariaDB service:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Run the security script to harden your database installation:

sudo mysql_secure_installation

Follow the interactive prompts to set a strong root password, remove anonymous users, disable remote root login, and delete test databases. These security measures protect your database from unauthorized access.

Create Vtiger Database and User

Log into the MySQL shell as root:

mysql -u root -p

Create a dedicated database for Vtiger CRM:

CREATE DATABASE vtigerdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Create a database user with appropriate privileges:

CREATE USER 'vtigeruser'@'localhost' IDENTIFIED BY 'SecurePassword123!';
GRANT ALL PRIVILEGES ON vtigerdb.* TO 'vtigeruser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Replace ‘SecurePassword123!’ with a strong, unique password. Use a combination of uppercase letters, lowercase letters, numbers, and special characters for maximum security.

Configure MySQL Settings for Vtiger

Edit the MariaDB configuration file:

sudo nano /etc/my.cnf.d/mariadb-server.cnf

Add these required settings under the [mysqld] section:

[mysqld]
default-storage-engine = InnoDB
local_infile = ON
sql_mode = NO_ENGINE_SUBSTITUTION

Save the file and restart MariaDB to apply changes:

sudo systemctl restart mariadb

Step 4: Install PHP 8.0+ and Required Extensions

Vtiger CRM requires PHP with multiple extensions for full functionality. Install PHP and all necessary modules:

sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-imap php-zip php-json -y

Each extension serves specific purposes. The mysqlnd extension provides database connectivity, mbstring handles multibyte characters for international support, gd processes image manipulation, xml parses XML data structures, curl makes HTTP requests, imap manages email integration, and zip handles compressed archives.

Verify your PHP installation:

php -v

This command displays the installed PHP version and confirms successful installation.

Configure PHP Settings for Vtiger

Edit the PHP configuration file to optimize settings for Vtiger:

sudo nano /etc/php.ini

Locate and modify these directives:

memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 300
date.timezone = Asia/Jakarta

Adjust the timezone to match your geographical location. The memory limit must be at least 256MB for Vtiger to function properly. Higher values improve performance for larger databases and complex operations.

Restart Apache to load the new PHP configuration:

sudo systemctl restart httpd

Step 5: Download and Extract Vtiger CRM

Navigate to the web server’s document root directory:

cd /var/www/html

Download the latest Vtiger CRM release from SourceForge:

sudo wget https://sourceforge.net/projects/vtigercrm/files/latest/download -O vtiger.tar.gz

Extract the downloaded archive:

sudo tar -xzvf vtiger.tar.gz

Rename the extracted directory for cleaner URLs:

sudo mv vtigercrm-* vtigercrm

Set Proper Ownership and Permissions

Configure file ownership so Apache can access and modify necessary files:

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

Set appropriate permissions for directories and files:

sudo chmod -R 755 /var/www/html/vtigercrm

Certain directories require write permissions for the web server:

sudo chmod -R 775 /var/www/html/vtigercrm/storage
sudo chmod -R 775 /var/www/html/vtigercrm/cache
sudo chmod -R 775 /var/www/html/vtigercrm/logs

Step 6: Configure Apache Virtual Host for Vtiger

Create a new virtual host configuration file:

sudo nano /etc/httpd/conf.d/vtigercrm.conf

Add this configuration:

<VirtualHost *:80>
    ServerName vtiger.example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/vtigercrm
    
    <Directory /var/www/html/vtigercrm>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/vtigercrm-error.log
    CustomLog /var/log/httpd/vtigercrm-access.log combined
</VirtualHost>

Replace vtiger.example.com with your actual domain name or server IP address. The AllowOverride All directive enables .htaccess files, which Vtiger uses for URL rewriting and security rules.

Test the Apache configuration for syntax errors:

sudo apachectl configtest

If the output shows “Syntax OK”, restart Apache to apply the new configuration:

sudo systemctl restart httpd

Step 7: Complete Vtiger CRM Web Installation

Access the Installation Wizard

Open your web browser and navigate to your server’s URL. For example, if using a domain name, visit http://vtiger.example.com. If using an IP address, visit http://your-server-ip/vtigercrm. The Vtiger installation wizard automatically launches, displaying the welcome screen.

System Requirements Verification

The first installation screen checks your system configuration against Vtiger’s requirements. Review each item carefully. All requirements should display green checkmarks indicating successful configuration. If any items show red warning icons, return to the relevant installation steps and address the missing dependencies or configuration issues.

Common failures include missing PHP extensions, incorrect file permissions, or insufficient PHP memory limits. The verification screen provides specific error messages to guide troubleshooting.

Database Configuration

Click “Install” to proceed to the database configuration page. Enter your database connection details:

  • Database Host: localhost
  • Database Name: vtigerdb
  • Database Username: vtigeruser
  • Database Password: (enter the password you created earlier)
  • Database Root User: root
  • Database Root Password: (your MySQL root password)

Vtiger needs root credentials during installation to create necessary database tables and indexes. After installation completes, the application uses only the regular database user credentials for security.

Administrator Account Setup

Create your administrator account on the next screen. This account has full system access and manages all CRM functions. Enter a strong password combining uppercase letters, lowercase letters, numbers, and special characters. Avoid common words or easily guessable information.

Configure your company information including organization name, industry type, and currency. These settings affect how Vtiger displays data and generates reports.

Finalize Installation

Click “Finish” to complete the installation process. Vtiger creates database tables, configures default settings, and prepares the system for first use. This process takes several minutes depending on server performance.

After successful installation, you’ll see the login screen. Use your administrator credentials to access the CRM dashboard for the first time.

Install Vtiger CRM on AlmaLinux 10

Step 8: Post-Installation Configuration

Secure the Installation Directory

For security, remove or rename the install directory after completing setup:

sudo mv /var/www/html/vtigercrm/install /var/www/html/vtigercrm/install_backup

This prevents unauthorized users from accessing the installation wizard and potentially compromising your system.

Configure Cron Jobs for Automation

Vtiger uses cron jobs for scheduled tasks like sending email campaigns, updating inventory, and generating recurring invoices. Set up the cron job by editing the crontab:

sudo crontab -e

Add this line:

*/15 * * * * /usr/bin/php /var/www/html/vtigercrm/cron/vtigercron.php

This configuration runs Vtiger’s automated tasks every 15 minutes. Adjust the frequency based on your business needs.

Configure Email Settings

Navigate to Settings > Configuration > Outgoing Server in the Vtiger interface. Configure your SMTP settings for sending emails. Enter your mail server details, port number, authentication credentials, and encryption method. Test the configuration by sending a test email to verify proper setup.

For incoming email, configure IMAP settings under Settings > Configuration > Mail Converter. This allows Vtiger to convert incoming emails into leads, contacts, or support tickets automatically.

Security Best Practices for Vtiger CRM

Install SSL Certificate

Encrypt data transmission between users and your CRM by installing an SSL certificate. Let’s Encrypt provides free SSL certificates. Install Certbot:

sudo dnf install certbot python3-certbot-apache -y

Obtain and install the certificate:

sudo certbot --apache -d vtiger.example.com

Follow the prompts to complete certificate installation. Certbot automatically configures Apache to use HTTPS and redirects HTTP traffic to the secure version.

Implement Strong Password Policies

Navigate to Settings > Configuration > Security in Vtiger. Enable password complexity requirements, set minimum password length to 12 characters, and enforce regular password changes. Enable account lockout after multiple failed login attempts to prevent brute force attacks.

Regular Backup Strategy

Establish automated backups for both database and files. Create a backup script:

sudo nano /usr/local/bin/vtiger-backup.sh

Add this content:

#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/vtiger"
mkdir -p $BACKUP_DIR

# Backup database
mysqldump -u vtigeruser -p'SecurePassword123!' vtigerdb > $BACKUP_DIR/vtiger_db_$DATE.sql

# Backup files
tar -czf $BACKUP_DIR/vtiger_files_$DATE.tar.gz /var/www/html/vtigercrm

# Keep only last 7 days of backups
find $BACKUP_DIR -name "vtiger_*" -mtime +7 -delete

Make the script executable and add it to crontab for daily execution.

Additional Security Measures

Keep Vtiger CRM updated to the latest version. Security patches address vulnerabilities discovered in previous releases. Subscribe to Vtiger security notifications to stay informed about critical updates.

Configure SELinux contexts if enabled on your system. Set httpd_sys_rw_content_t context for writable directories to maintain security while allowing necessary access.

Restrict database access to localhost only. Edit MariaDB configuration to prevent remote database connections unless specifically required for multi-server deployments.

Troubleshooting Common Issues

Blank Page After Installation

White screen errors typically indicate PHP configuration problems. Enable error display temporarily by editing php.ini:

display_errors = On
error_reporting = E_ALL

Check PHP error logs at /var/log/php-fpm/www-error.log for specific error messages. Common causes include insufficient memory limits or missing PHP extensions.

Database Connection Errors

Verify MariaDB is running:

sudo systemctl status mariadb

Test database connectivity manually:

mysql -u vtigeruser -p vtigerdb

If connection fails, verify credentials in Vtiger’s config.inc.php file located in the root installation directory.

Permission Denied Errors

Permission issues prevent Vtiger from writing logs, cache, or uploaded files. Verify Apache owns the installation directory and has write permissions on storage, cache, and logs directories. Check SELinux audit logs if using SELinux:

sudo ausearch -m avc -ts recent

500 Internal Server Error

Check Apache error logs for detailed information:

sudo tail -f /var/log/httpd/vtigercrm-error.log

Common causes include .htaccess configuration errors, PHP syntax errors, or insufficient server resources. Review the specific error message to identify the root cause.

Missing PHP Extensions

List currently loaded PHP modules:

php -m

Compare against Vtiger’s requirements. Install missing extensions using dnf and restart Apache to load them.

Performance Optimization Tips

Enable PHP OPcache to cache compiled PHP code, reducing processing overhead. Edit the OPcache configuration:

sudo nano /etc/php.d/10-opcache.ini

Configure these settings:

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

Configure MySQL query caching to speed up repeated database queries. Add to MariaDB configuration:

query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 2M

Enable Apache’s mod_deflate to compress HTTP responses, reducing bandwidth usage and improving page load times. Install if not present:

sudo dnf install mod_deflate -y

Implement browser caching by adding cache headers to your Apache configuration. This reduces server load by storing static resources in users’ browsers.

Regular database maintenance keeps Vtiger running smoothly. Schedule weekly database optimization:

mysqlcheck -u root -p --optimize --all-databases

Monitor server resources using tools like htop, netdata, or Glances. Track CPU usage, memory consumption, disk I/O, and network traffic to identify performance bottlenecks before they impact users.

Congratulations! You have successfully installed Vtiger CRM. Thanks for using this tutorial for installing the Vtiger CRM on AlmaLinux OS 10 system. For additional help or useful information, we recommend you check the official Vtiger website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button