Learn how to install and deploy SuiteCRM on AlmaLinux 9 using the LAMP stack (Linux, Apache, MySQL, PHP).
SuiteCRM is one of the best open-source CRM platforms available — it’s reliable, customizable, and free to use. Deploying SuiteCRM on AlmaLinux with LAMP is a powerful way to give businesses a full-featured, open-source customer relationship management system. In this step-by-step guide, we’ll walk through how we can install SuiteCRM on an AlmaLinux server using the LAMP stack (Linux, Apache, MariaDB, PHP).
Prerequisites
Before we begin, let’s ensure we have the following in place:
- A AlmaLinux 9 dedicated server or KVM VPS.
- A basic programming knowledge.
- A domain name pointing to server IP
How to Install SuiteCRM on AlmaLinux 9 with LAMP Stack – Complete Step-by-Step Guide (2025)
Step 1: Update AlmaLinux and Install EPEL
Before installing anything, we must update our AlmaLinux system to the latest available packages to ensure stability and security.
sudo dnf update -y
sudo dnf install epel-release -y
sudo dnf update -y
Step 2: Install Apache (HTTP Server)
Apache is the web server that will serve the SuiteCRM web interface.
sudo dnf install httpd -y
sudo systemctl enable httpd --now
Once installed, we can confirm it’s running with:
sudo systemctl status httpd
Ensure port 80 (HTTP) and port 443 (HTTPS) are open:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Step 3: Install and Configure MariaDB
SuiteCRM needs a database to store CRM data. MariaDB is a stable, MySQL-compatible database system.
sudo dnf install mariadb-server -y
sudo systemctl enable mariadb --now
Now secure our MariaDB installation:
sudo mysql_secure_installation
We’ll be prompted to set a root password, remove anonymous users, disable remote root login, and remove the test database — accept all recommended options.
Then create a database and user for SuiteCRM:
sudo mysql -u root -p
Inside the MariaDB shell:
CREATE DATABASE suitecrm_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'suitecrm_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'suitecrm_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 4: Install PHP and Required Extensions
SuiteCRM needs PHP 8.1+ with a set of essential extensions.
sudo dnf install -y dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y
sudo dnf install -y php php-cli php-common php-mysqlnd php-gd php-xml php-curl php-zip php-imap php-mbstring php-json php-bcmath php-intl php-opcache
Check installed PHP version:
php -v
Step 5: Tune PHP Configuration
Let’s edit the PHP configuration to match SuiteCRM’s needs.
sudo nano /etc/php.ini
Update the following values:
memory_limit = 512M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 360
Then restart Apache to apply PHP changes:
sudo systemctl restart httpd
Step 6: Download and Deploy SuiteCRM
Now let’s fetch the latest stable SuiteCRM release from the official website:
mkdir /var/www/suitecrm && cd /var/www/suitecrm
wget https://suitecrm.com/download/165/suite88/565090/suitecrm-8-8-0.zip
sudo dnf install unzip -y
sudo unzip suitecrm-8-8-0.zip
sudo chown -R apache:apache /var/www/suitecrm
Step 7: Configure Apache Virtual Host
We’ll now create a virtual host file for SuiteCRM.
sudo nano /etc/httpd/conf.d/suitecrm.conf
Add the following content:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/suitecrm/public
ServerName crm.example.com
<Directory /var/www/suitecrm/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/suitecrm_error.log
CustomLog /var/log/httpd/suitecrm_access.log combined
</VirtualHost>
Then restart Apache:
sudo systemctl restart httpd
We also need to enable .htaccess
usage:
sudo nano /etc/httpd/conf/httpd.conf
Search for:
<Directory "/var/www">
AllowOverride None
Change AllowOverride None to:
AllowOverride All
Restart Apache again:
sudo systemctl restart httpd
Step 8: Configure SELinux and Permissions
If SELinux is enforcing, allow Apache to read and write the required files:
sudo chcon -R -t httpd_sys_rw_content_t /var/www/suitecrm
sudo setsebool -P httpd_can_network_connect_db 1
Step 9: Access the SuiteCRM Web Installer
Now open the browser and visit:
http://crm.example.com
If DNS is not set up, use the server IP instead.
You’ll see the SuiteCRM installation wizard. Follow the prompts to:
- Accept the license
- Set database information (suitecrm_db, suitecrm_user, and password)
- Create an admin user
- Finalize the configuration
Once complete, SuiteCRM will be ready to use!
Step 10: Secure Your CRM with HTTPS (Optional but Recommended)
Install Certbot for SSL:
sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d crm.example.com
Set auto-renew:
echo "0 0 * * * root certbot renew --quiet" | sudo tee -a /etc/crontab
Final Thoughts
Deploying SuiteCRM on AlmaLinux with LAMP gives us full control, flexibility, and scalability. It's ideal for businesses that want a cost-effective CRM with powerful features like sales automation, customer support, and marketing workflows. By hosting SuiteCRM on our own AlmaLinux server, we ensure data privacy, performance tuning, and easy customization.