Installing SuiteCRM 8.8 on Ubuntu Server

By Raman Kumar

Updated on Feb 11, 2025

In this tutorial, we're Installing SuiteCRM 8.8 on Ubuntu 24.04 Server.

Below is a comprehensive guide to installing SuiteCRM 8.8 on a Ubuntu 24.04 server. This step-by-step walkthrough covers installing required packages, setting up the database, configuring PHP and NGINX to serve SuiteCRM in your browser, and applying key security best practices. The instructions assume you’re using an Ubuntu 20.04 (or similar) system. Adjust package names and file paths as needed for your distribution.

Prerequisites:

  • A Ubuntu 24.04 installed dedicated server or KVM VPS.
  • A root user or normal user with administrative privileges.
  • Added DNS A record, pointing to the server's IP. 

Installing SuiteCRM 8.8 on Ubuntu Server

Step 1. Update Your System and Install Required Packages

Begin by updating your package list and installing the necessary software. You’ll need NGINX for the webserver, MariaDB (or MySQL) for the database, PHP with required modules, and some utilities.

Open your terminal and run:

sudo apt update && sudo apt upgrade -y
sudo apt install nginx mariadb-server php-fpm php-mysql php-xml php-mbstring php-curl php-gd php-zip unzip curl -y

Tip: Verify that your PHP version meets SuiteCRM’s requirements (typically PHP 7.3 or later). You can check with:

php -v

Step 2. Secure and Configure MariaDB

Before using MariaDB, run its security script to remove default settings that could be exploited:

sudo mysql_secure_installation

Follow the prompts to set the root password (if not already set), remove anonymous users, disable remote root login, and remove the test database.

Now, create a dedicated database and user for SuiteCRM:

Log in to MariaDB:

sudo mysql -u root -p

At the MariaDB prompt, execute the following commands (replace YourStrongPassword with a secure password):

CREATE DATABASE suitecrm CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'suitecrmuser'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrmuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

These steps ensure that SuiteCRM uses its own database account, reducing security risks.

Step 3. Download and Install SuiteCRM

Download SuiteCRM:

Visit the official SuiteCRM website to verify the latest version and obtain the download URL . For example, to download version 8.8, you might run:

cd /tmp
wget https://suitecrm.com/download/165/suite88/565090/suitecrm-8-8-0.zip

Extract Files to the Web Directory:

Create a directory for SuiteCRM under NGINX’s web root and extract the archive:

sudo mkdir -p /var/www/suitecrm
sudo unzip SuiteCRM-8.8.zip -d /var/www/suitecrm

Note: If the ZIP file extracts to a subfolder (for example, /var/www/suitecrm/SuiteCRM-8.8), you can either move its contents up one level or adjust your webserver’s root path accordingly.

Set Correct Permissions:

SuiteCRM requires certain directories to be writable. Set ownership and permissions as follows:

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

This setup grants the webserver user (www-data) ownership while keeping file permissions reasonably strict.

Step 4. Fine-Tune PHP Settings

Depending on your SuiteCRM installation and expected workload, you may need to adjust PHP settings (such as memory limits, file upload sizes, and execution times). Open your PHP configuration file for FPM:

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

Look for and modify these directives as needed:

memory_limit (e.g., 256M)
upload_max_filesize (e.g., 50M)
post_max_size (e.g., 50M)
max_execution_time (e.g., 300)

After saving your changes, reload PHP-FPM:

sudo systemctl restart php8.3-fpm

(Adjust the PHP version in the commands if you are using a different version.)

Step 5. Firewall Configuration:

Use UFW or iptables to allow only essential ports. For example, to allow HTTP and HTTPS on Ubuntu:

sudo ufw allow 'Nginx Full'
sudo ufw enable

Step 6. Configure NGINX to Serve SuiteCRM

Create a New NGINX Server Block:

Open a new file for your SuiteCRM site:

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

Insert the Following Configuration:

Replace your_domain.com with your actual domain name (or use your server’s IP address):

server {
    listen 80;
    server_name your_domain.com;

    root /var/www/suitecrm/public;
    index index.php index.html index.htm;

    # Handle URL rewrites for SuiteCRM
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Process PHP files using PHP-FPM
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
    }

    # Serve static files with caching
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    # Deny access to hidden files (beginning with a dot)
    location ~ /\. {
        deny all;
    }
}

Note: If you’re using a different PHP version, update the fastcgi_pass path accordingly (for example, php8.3-fpm.sock).

Enable the Configuration and Test NGINX:

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

Enable HTTPS:

It’s highly recommended to secure your connection with SSL. Use Certbot for a free Let’s Encrypt certificate:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com

Follow the interactive prompts to complete the certificate issuance and automatic NGINX configuration.

Step 7. Finalize the SuiteCRM Installation via the Browser

Now that your environment is ready, open your web browser and navigate to:

https://your_domain.com

(Or use https://your_domain.com if you configured SSL.)

The SuiteCRM web installer should load. Follow these steps:

Agree to the License:

Review and accept the license terms.

Configure the Database:

When prompted, input the database details you created earlier:

Database Host: localhost
Database Name: suitecrm
Database Username: suitecrmuser
Database Password: (Your chosen password)

Set Up the Admin Account:

Create your SuiteCRM administrator account with a strong password.

Complete the Installation:

Proceed through the remaining prompts. Once installation finishes, you may be instructed to remove or restrict access to the installation directory—follow those recommendations carefully.

Step 8. Post-Installation Security Best Practices

After SuiteCRM is installed, consider these measures to keep your system secure:

File and Directory Permissions: Double-check that only necessary directories are writable and that ownership is set to the webserver user.

Secure Database Access: Ensure that your SuiteCRM database user has only the privileges needed for operation. Avoid using root or overly privileged accounts.

Regular Updates: Keep your operating system, SuiteCRM, PHP, and all packages updated to patch security vulnerabilities.

Use Strong Passwords: Ensure that all accounts (database, admin login, etc.) use strong, unique passwords.

Monitor Logs: Periodically review your NGINX, PHP-FPM, and SuiteCRM logs for any suspicious activity.

Backup Your Data: Set up a regular backup routine for both your SuiteCRM files and its database.

In this tutorial, we've Installed SuiteCRM 8.8 on Ubuntu 24.04 Server. By following these steps, you’ve successfully deployed SuiteCRM on a Linux server with NGINX as your webserver. With the system secured and configured properly, you’re now ready to leverage the full power of SuiteCRM in managing your customer relationships. Enjoy your new open-source CRM system!