Installing SuiteCRM on Debian 12: A Step-by-Step Guide

SuiteCRM is a free, open-source Customer Relationship Management (CRM) software written in PHP. It assists in organizing and managing your business’s marketing, sales, and customer service departments. SuiteCRM is versatile and suitable for industries such as manufacturing, public sectors, technology, finance, education, etc.

This guide provides a detailed, step-by-step walkthrough for installing SuiteCRM on a Debian 12 server. You will deploy SuiteCRM using the LAMP Stack (Apache2, MariaDB, and PHP). Additionally, you’ll secure SuiteCRM with SSL/TLS certificates from Let’s Encrypt.

Prerequisites

Make sure you meet the following requirements before you proceed:

  • A Debian 12 Server.
  • A non-root user with administrator privileges.
  • A domain name pointed to your server’s IP address.

Installing Dependencies

SuiteCRM is built with PHP and requires MySQL/MariaDB as its database. We’ll operate SuiteCRM with the LAMP Stack. Now, install the necessary LAMP stack packages with additional PHP extensions.

First, update your Debian package index:

sudo apt update

update repo

Next, install the LAMP Stack and the required PHP extensions:

sudo apt install apache2 mariadb-server php php-cli php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-intl php-cli php-opcache php-soap php-imap php-ldap unzip

install dependencies

Verify that the Apache2 service is enabled and running:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

check apache2

Ensure that the MariaDB service is enabled and running:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

check mariadb

Check your PHP version and its enabled extensions:

php -v
php -m

check php

Configuring MariaDB Server

After installing the dependencies, it’s time to secure your MariaDB server and create a new database and user for SuiteCRM.

Secure your MariaDB installation:

sudo mariadb-secure-installation

Follow the prompts to set up your MariaDB server securely.

Configuring PHP

Next, we’ll configure PHP settings as required by SuiteCRM. Modify the PHP configuration files:

sudo nano /etc/php/8.2/apache2/php.ini
sudo nano /etc/php/8.2/cli/php.ini
date.timezone = Europe/Amsterdam

max_execution_time = 60
memory_limit = 256M

upload_max_filesize = 25M
post_max_size = 25M

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING

session.save_path = "/var/lib/php/sessions"

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0

Restart the Apache2 service to apply changes:

sudo systemctl restart apache2

Downloading and Installing SuiteCRM

Next, download and install SuiteCRM:

mkdir -p /var/www/suitecrm
cd /var/www/suitecrm
wget https://suitecrm.com/download/142/suite84/562972/suitecrm-8-4-0.zip
unzip suitecrm-8-4-0.zip

Set up appropriate permissions for SuiteCRM:

find . -type d -not -perm 2755 -exec chmod 2755 {} \;
find . -type f -not -perm 0644 -exec chmod 0644 {} \;
find . ! -user www-data -exec chown www-data:www-data {} \;
chmod +x bin/console

Install SuiteCRM via the command line:

sudo -u www-data ./bin/console suitecrm:app:install -u "alice" -p "password" -U "suitecrm" -P "password" -H "127.0.0.1" -N "suitecrmdb" -S "http://suitecrm.howtoforge.local/"

Configuring Apache2 Virtual Host for SuiteCRM

Create a new Apache2 virtual host for SuiteCRM:

sudo a2enmod rewrite ssl headers
sudo nano /etc/apache2/sites-available/suitecrm.conf
<VirtualHost *:80>
    
  DocumentRoot /var/www/suitecrm/public
  ServerName suitecrm.howtoforge.local

  <Directory /var/www/suitecrm/public>
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  ErrorLog /var/log/apache2/suitecrm-error.log
  CustomLog /var/log/apache2/suitecrm-access.log common

</VirtualHost>

Enable the new virtual host and restart Apache2:

sudo a2ensite suitecrm.conf
sudo apachectl configtest
sudo systemctl restart apache2

Securing SuiteCRM with SSL/TLS from Let’s Encrypt

Secure SuiteCRM using Certbot:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email admin@howtoforge.local -d suitecrm.howtoforge.local

Conclusion

Congratulations! You’ve successfully installed SuiteCRM on a Debian 12 server using LAMP Stack and secured it with SSL/TLS via Let’s Encrypt. You’re now ready to leverage SuiteCRM’s features to boost your business performance. To get started, consider integrating an SMTP server for SuiteCRM notifications.

FAQ

  • Why should I use SuiteCRM?
    SuiteCRM is a robust, open-source CRM solution suitable across various industries to manage marketing, sales, and customer service efficiently.
  • Is SuiteCRM truly free to use?
    Yes, SuiteCRM is free and open source, allowing you to customize and use it as needed without licensing costs.
  • Can I install SuiteCRM on a different Linux distribution?
    While this guide is tailored for Debian 12, SuiteCRM can also be deployed on other distributions with slight adjustments to the package manager and surrounding configurations.
  • What is the recommended server specification for SuiteCRM?
    This depends on your business needs, but generally, a server with at least 2GB of RAM and a multi-core CPU is recommended for moderate use.