UbuntuUbuntu Based

How To Install SuiteCRM on Ubuntu 24.04 LTS

Install SuiteCRM on Ubuntu 24.04

SuiteCRM is a powerful open-source customer relationship management solution that provides businesses with tools to effectively manage customer interactions, sales pipelines, and marketing campaigns. This guide outlines the complete process of installing SuiteCRM on Ubuntu 24.04 LTS, covering both Apache and Nginx web server options to ensure you can choose the setup that best meets your organization’s needs.

Understanding SuiteCRM and Its Benefits

SuiteCRM is an open-source alternative to the popular customer relationship management (CRM) software, SugarCRM. It emerged when SugarCRM discontinued the development of their open-source version. As a comprehensive CRM solution, SuiteCRM offers numerous features that benefit businesses across various industries including manufacturing, public sector, technology, finance, and education.

The core functionalities of SuiteCRM include sales management, which allows tracking of leads, opportunities, and contacts throughout the sales pipeline. Its marketing automation capabilities support email campaigns, lead tracking, and targeted marketing initiatives. The platform also excels in customer support management through its service case tracking and customer interaction tools.

One of the primary advantages of SuiteCRM is its customizability and extensibility. Being open-source, businesses can modify the platform to suit their specific requirements, add custom modules, and integrate with third-party applications. This flexibility, combined with the robust and secure foundation of Ubuntu 24.04 LTS, creates an optimal environment for deploying a reliable CRM system.

Installing SuiteCRM on Ubuntu 24.04 provides organizations with a cost-effective, stable, and scalable solution for managing customer relationships. The long-term support provided by Ubuntu ensures security updates and stability for an extended period, making it an ideal choice for business-critical applications like customer relationship management systems.

Prerequisites for Installation

Before beginning the installation process, ensure your system meets the necessary requirements. You’ll need a server running Ubuntu 24.04 LTS with sufficient resources to handle your expected CRM workload. For most small to medium deployments, a system with at least 4GB RAM and 20GB of storage space should be adequate.

You should have a fully qualified domain name (FQDN) that points to your server’s IP address, which will be used to access the SuiteCRM interface. This domain configuration should be completed before proceeding with the installation.

Administrative access to your server is essential, either as the root user or as a non-root user with sudo privileges. Basic familiarity with Linux command-line operations will be helpful throughout this installation process.

Additionally, ensure your server has internet connectivity to download the necessary packages and the SuiteCRM software. If you’re setting up a production environment, consider implementing proper backup procedures before proceeding with any significant system changes.

System Preparation

Begin by updating your system packages to ensure you have the latest security patches and software versions. Open a terminal and execute the following commands:

sudo apt update
sudo apt upgrade

These commands refresh your package lists and upgrade all installed packages to their latest versions. This step is crucial as it ensures compatibility and security for your installation.

Next, install essential tools that will be needed during the installation process:

sudo apt install wget curl nano ufw software-properties-common

If you plan to use a firewall to protect your server, which is highly recommended for production environments, you should configure UFW (Uncomplicated Firewall) to allow HTTP and HTTPS traffic:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

This configuration enables SSH connections (port 22) for remote administration and web traffic (ports 80 and 443) for accessing the SuiteCRM interface. With these preparations complete, your system is ready for the next steps in the installation process.

Choosing Your Web Server: Apache vs. Nginx

SuiteCRM can be deployed with either Apache or Nginx web servers, each offering distinct advantages. Apache is more widely used and often considered easier to configure for PHP applications due to its .htaccess support. It integrates seamlessly with PHP and provides solid performance for most deployments.

Nginx, on the other hand, is known for its superior performance under high loads and lower memory footprint. It excels at serving static content and can be configured to work efficiently with PHP through PHP-FPM. While Nginx configuration can be more complex initially, it often provides better scalability for growing organizations.

Both web servers work well with SuiteCRM on Ubuntu 24.04. This guide covers installation procedures for both options, allowing you to select the one that best aligns with your technical preferences and performance requirements.

Installing the LAMP Stack (Apache Option)

If you choose Apache as your web server, you’ll need to install the LAMP stack (Linux, Apache, MariaDB, PHP). Begin with the Apache web server installation:

sudo apt install apache2

After installation, you can start, stop, and enable Apache to run automatically at system boot:

sudo systemctl start apache2
sudo systemctl enable apache2

Verify that Apache is running by accessing your server’s IP address or domain name in a web browser. You should see the default Apache welcome page indicating successful installation.

Next, install MariaDB, which will serve as the database for SuiteCRM:

sudo apt install mariadb-server

Similar to Apache, start and enable the MariaDB service:

sudo systemctl start mariadb
sudo systemctl enable mariadb

To secure your MariaDB installation, run the security script:

sudo mysql_secure_installation

This interactive process will prompt you to set a root password, remove anonymous users, disallow root login remotely, and remove the test database.

Finally, install PHP and the necessary extensions required by SuiteCRM:

sudo apt install php php-common php-mysql php-gd php-cli php-curl php-mbstring php-zip php-xml php-imap php-bcmath php-soap php-intl php-opcache

With these components installed, your LAMP stack is ready to host SuiteCRM. The combination of Apache’s reliability and PHP’s seamless integration makes this a solid foundation for your CRM system.

Installing the LEMP Stack (Nginx Option)

If you prefer using Nginx, you’ll need to install the LEMP stack (Linux, Nginx, MariaDB, PHP). Start by installing Nginx:

sudo apt install nginx

After installation, start and enable the Nginx service:

sudo systemctl start nginx
sudo systemctl enable nginx

Verify that Nginx is running by accessing your server’s IP address or domain name in a web browser. You should see the default Nginx welcome page.

Next, install MariaDB as your database server:

sudo apt install mariadb-server

Start and enable the MariaDB service:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Secure your MariaDB installation using the security script:

sudo mysql_secure_installation

For Nginx to work with PHP, you’ll need to install PHP-FPM (FastCGI Process Manager) alongside the required PHP extensions:

sudo apt install php-fpm php-common php-mysql php-gd php-cli php-curl php-mbstring php-zip php-xml php-imap php-bcmath php-soap php-intl php-opcache

With PHP-FPM installed, Nginx can efficiently process PHP requests through the FastCGI protocol. This setup provides excellent performance characteristics, particularly for high-traffic scenarios. The LEMP stack installation is now complete and ready for further configuration to support SuiteCRM.

Configuring PHP for Optimal Performance

SuiteCRM requires specific PHP settings for optimal performance and functionality. Edit the PHP configuration file to adjust these settings based on your expected workload:

For Apache with mod_php:

sudo nano /etc/php/8.2/apache2/php.ini

For Nginx with PHP-FPM:

sudo nano /etc/php/8.2/fpm/php.ini

Within the configuration file, locate and modify these key settings:

post_max_size = 60M
upload_max_filesize = 60M
memory_limit = 256M
max_input_time = 60
max_execution_time = 5000
date.timezone = Your/Timezone

These adjustments ensure that SuiteCRM can handle file uploads, process complex operations, and run within appropriate time constraints. The memory limit of 256MB provides sufficient resources for most deployments while preventing runaway processes from consuming excessive server resources.

After making these changes, restart the PHP service to apply the new configuration:

For Apache:

sudo systemctl restart apache2

For Nginx with PHP-FPM:

sudo systemctl restart php8.2-fpm

Creating and Configuring the Database

SuiteCRM requires a dedicated database to store its data. Connect to the MariaDB server to create this database and a user with appropriate permissions:

sudo mysql -u root -p

At the MariaDB prompt, execute the following SQL commands, replacing placeholders with your preferred values:

CREATE DATABASE suitecrm_db;
CREATE USER 'suitecrm_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'suitecrm_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

This creates a new database named suitecrm_db and a dedicated user with full privileges on that database. Using a dedicated database user rather than the root account enhances security by limiting potential damage if credentials are compromised.

For optimal performance with UTF-8 support, you might want to specify character set and collation during database creation:

CREATE DATABASE suitecrm_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

These database settings ensure compatibility with SuiteCRM’s multilingual capabilities and provide proper storage for special characters and emojis that might be used in your CRM data.

Downloading and Preparing SuiteCRM

Now it’s time to download the SuiteCRM software. Navigate to a temporary directory and download the latest version:

cd /tmp
wget https://suitecrm.com/download/128/suite82/561717/suitecrm-8.2.4.zip

Note that you should visit the official SuiteCRM website to get the URL for the latest version, as it may differ from the example above.

Once downloaded, install the unzip utility if not already present, and extract the archive:

sudo apt install unzip
unzip suitecrm-8.2.4.zip

Move the extracted files to your web server’s document root directory:

For Apache:

sudo mv SuiteCRM-8.2.4 /var/www/html/suitecrm

For Nginx:

sudo mv SuiteCRM-8.2.4 /var/www/suitecrm

Set appropriate ownership and permissions to ensure the web server can access and modify the files:

sudo chown -R www-data:www-data /var/www/html/suitecrm  # For Apache
sudo chown -R www-data:www-data /var/www/suitecrm       # For Nginx
sudo chmod -R 755 /var/www/html/suitecrm                # For Apache
sudo chmod -R 755 /var/www/suitecrm                     # For Nginx

Configuring Web Server for SuiteCRM

Apache Configuration

For Apache, create a virtual host configuration file for your SuiteCRM installation:

sudo nano /etc/apache2/sites-available/suitecrm.conf

Add the following configuration, adjusting the domain name and directory paths as needed:

<VirtualHost *:80>
    ServerName crm.yourdomain.com
    DocumentRoot /var/www/html/suitecrm
    
    <Directory /var/www/html/suitecrm>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/suitecrm_error.log
    CustomLog ${APACHE_LOG_DIR}/suitecrm_access.log combined
</VirtualHost>

Enable the virtual host and the required Apache modules:

sudo a2ensite suitecrm.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Nginx Configuration

For Nginx, create a server block configuration:

sudo nano /etc/nginx/sites-available/suitecrm

Add the following configuration, adjusting domain and path information:

server {
    listen 80;
    server_name crm.yourdomain.com;
    root /var/www/suitecrm;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Enable the configuration by creating a symbolic link:

sudo ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

These configurations direct web traffic to your SuiteCRM installation and set up the necessary rules for processing PHP files. The Apache configuration enables .htaccess support with AllowOverride All, while the Nginx configuration properly routes requests to PHP-FPM for processing.

Setting Up SSL with Let’s Encrypt

Securing your SuiteCRM installation with SSL is essential for protecting sensitive customer data. Let’s Encrypt provides free SSL certificates that can be automatically deployed and renewed. Start by installing Certbot:

sudo apt install certbot

For Apache, install the Apache plugin:

sudo apt install python3-certbot-apache

For Nginx, install the Nginx plugin:

sudo apt install python3-certbot-nginx

Obtain and install the certificate using Certbot:

For Apache:

sudo certbot --apache -d crm.yourdomain.com

For Nginx:

sudo certbot --nginx -d crm.yourdomain.com

Follow the prompts to complete the certificate issuance process. Certbot will automatically modify your web server configuration to use HTTPS.

To ensure certificates are automatically renewed, Certbot installs a renewal timer. You can test the renewal process with:

sudo certbot renew --dry-run

With SSL properly configured, all traffic between users and your SuiteCRM instance will be encrypted, protecting sensitive information and meeting compliance requirements. Additionally, modern browsers display security warnings for non-HTTPS sites, so implementing SSL helps maintain user trust in your CRM system.

The automatic renewal feature ensures that your certificates remain valid without manual intervention, preventing unexpected certificate expirations that could disrupt access to your CRM system.

Running the SuiteCRM Installation Wizard

With your web server and database configured, it’s time to run the SuiteCRM installation wizard. Open your web browser and navigate to your domain (https://crm.yourdomain.com).

The welcome page will appear, guiding you through the installation process. Click “Next” to proceed and review the license agreement. Accept the terms by checking the box and click “Next” again.

On the system check page, the installer will verify that your server meets all requirements. If any issues are detected, resolve them before continuing.

When you reach the database configuration screen, enter the details for the database you created earlier:

  • Database Type: MySQL
  • Database Host Name: localhost
  • Database Name: suitecrm_db
  • Database User Name: suitecrm_user
  • Database User Password: your_strong_password

For the site configuration section, provide:

  • Site URL: https://crm.yourdomain.com
  • Admin Username: Choose an admin username
  • Admin Password: Create a strong password
  • Email Address: Admin email address

You can choose between typical and custom installation. The typical installation is recommended for most users and automatically configures standard settings.

Finally, review all information and click “Install” to begin the installation process. The installer will create tables, import default data, and configure your SuiteCRM instance. Upon completion, you’ll be redirected to the login page where you can access your new SuiteCRM installation using the admin credentials you provided.

Install SuiteCRM on Ubuntu 24.04

Post-Installation Tasks

After successfully installing SuiteCRM, several post-installation tasks should be performed to enhance security, performance, and functionality.

First, set up cron jobs to automate SuiteCRM’s scheduled tasks. Create a new crontab entry for the web server user:

sudo -u www-data crontab -e

Add the following line:

*/2 * * * * cd /var/www/html/suitecrm && php -f cron.php > /dev/null 2>&1

This runs SuiteCRM’s scheduler every two minutes, handling email processing, workflow execution, and other automated tasks.

Configure outbound email settings through the SuiteCRM administration panel to enable email notifications and marketing campaigns. Navigate to Admin > Email Settings to configure your SMTP server details.

For security hardening, remove or restrict access to the install directory:

sudo rm -rf /var/www/html/suitecrm/install

Implement regular database backups to protect your valuable CRM data:

mysqldump -u suitecrm_user -p suitecrm_db > suitecrm_backup_$(date +%Y%m%d).sql

Finally, review and adjust PHP and web server settings based on your usage patterns to optimize performance for your specific needs.

Troubleshooting Common Installation Issues

During the SuiteCRM installation process, you might encounter various issues. Here are solutions to common problems:

If you experience permission errors, verify that the web server user has proper access to the SuiteCRM directory:

sudo chown -R www-data:www-data /var/www/html/suitecrm
sudo chmod -R 755 /var/www/html/suitecrm
sudo find /var/www/html/suitecrm -type d -exec chmod 775 {} \;
sudo find /var/www/html/suitecrm -type f -exec chmod 664 {} \;

For database connection issues, double-check your database settings and ensure the MariaDB service is running:

sudo systemctl status mariadb
mysql -u suitecrm_user -p -e "use suitecrm_db"

If PHP extension errors occur, install the missing extensions and restart your web server:

sudo apt install php-[extension_name]
sudo systemctl restart apache2  # or nginx

For memory limit errors, adjust the PHP memory settings in php.ini and restart PHP:

sudo nano /etc/php/8.1/fpm/php.ini  # Change memory_limit
sudo systemctl restart php8.1-fpm

Check server logs for detailed error information:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log
  • PHP: /var/log/php8.1-fpm.log

Updating SuiteCRM

Keeping your SuiteCRM installation updated is crucial for security and functionality. Before performing any update, create a complete backup of your files and database:

sudo cp -r /var/www/html/suitecrm /var/www/html/suitecrm_backup
mysqldump -u suitecrm_user -p suitecrm_db > suitecrm_db_backup.sql

Download the latest SuiteCRM version from the official website and extract it to a temporary location. Follow the upgrade instructions in the SuiteCRM documentation, which typically involve replacing specific files while preserving your configuration and customizations.

After updating, clear the SuiteCRM cache and run a quick repair through the Admin > Repair menu in the SuiteCRM interface. This ensures optimal performance and resolves any potential issues introduced during the update process.

Congratulations! You have successfully installed SuiteCRM. Thanks for using this tutorial for installing the SuiteCRM with LEMP stack on Ubuntu 24.04 LTS system. For additional help or useful information, we recommend you check the SuiteCRM 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