Author: Christian Kintu
Last Updated: Thu, Jun 9, 2022SuiteCRM is a free open-source Customer Relationship Management (CRM) application that helps you speed up business operations by providing better customer experiences with an overview of company sales, marketing, and other services. This article guides you on how to install SuiteCRM on CentOS 8.
suitecrm.example.com
pointed to the server.Install the MySQL database server.
$ sudo dnf install mysql-server
Start MySQL.
$ sudo systemctl start mysqld
Set the MySQL root user password and clear unused defaults.
mysql_secure_installation
Log in to MySQL.
$ sudo mysql -u root
Create a new SuiteCRM database.
CREATE DATABASE suitecrm;
Create a database user and assign a secure password.
CREATE USER 'suite'@'localhost' IDENTIFIED BY 'secure-password';
Grant the user full permissions to the SuiteCRM database.
GRANT ALL ON suitecrm.* TO 'suite'@'localhost';
Flush the MySQL privileges table.
FLUSH PRIVILEGES;
Exit the MySQL shell.
EXIT
Enable the PowerTools repository
$ sudo dnf config-manager --set-enabled powertools
Install the Extra Packages for Enterprise Linux (EPEL) repository.
$ sudo dnf install epel-release
Install the Remi repository.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Install PHP Version 7.4.
$ sudo dnf module install php:remi-7.4
Install required PHP modules.
$ sudo dnf install php php-fpm php-mysqlnd php-cgi php-bcmath php-json php-xml php-gettext php-common php-curl php-intl php-zip php-imap php-pear php-mbstring php-gd -y
Edit the main PHP configuration file.
$ sudo vim /etc/php.ini
Locate the upload_max_filesize = 2M
directive near line 846, and change its value to 20MB or above as required by SuiteCRM.
upload_max_filesize = 20M
Save and close the file.
Restart PHP-FPM to load changes.
$ sudo systemctl restart php-fpm
Create the SuiteCRM web root directory in /var/www/
.
$ sudo mkdir /var/www/suitecrm
Download the latest SuiteCRM stable version.
$ wget https://suitecrm.com/files/147/SuiteCRM-7.12/614/SuiteCRM-7.12.5.zip
This article uses version 7.12.5
. Be sure to download the latest stable version from the SuiteCRM website.
Unzip the downloaded release file.
$ unzip SuiteCRM-7.12.5.zip
Move extracted files to the SuiteCRM webroot directory.
$ sudo mv SuiteCRM-7.12.5/* /var/www/suitecrm
Grant Nginx ownership permissions on the SuiteCRM directory.
$ sudo chown -R nginx:nginx /var/www/suitecrm
Set the directory permissions mode temporarily to 777
for SuiteCRM to write new files.
$ sudo chmod -R 777 /var/www/suitecrm
Restart Nginx.
$ sudo systemctl restart nginx
Create and edit the SuiteCRM Nginx configuration file using a text editor.
$ sudo vim /etc/nginx/conf.d/suitecrm.example.com.conf
Add the following configurations to the file. Replace suitecrm.example.com
with your actual domain name.
server {
listen 80;
listen [::]:80;
server_name suitecrm.example.com;
root /var/www/suitecrm;
client_max_body_size 20M;
error_log /var/log/nginx/suitecrm.error;
access_log /var/log/nginx/suitecrm.access;
index index.php index.html index.htm;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~ /\. {
deny all;
}
}
Save and close the file.
Test the Nginx configuration.
$ sudo nginx -t
Restart Nginx for changes to take effect.
$ sudo systemctl restart nginx
Configure SELinux to allow Nginx write actions on the SuiteCRM directory.
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/suitecrm(/.*)?"
$ sudo restorecon -Rv /var/www/suitecrm/
Configure the Firewall to allow HTTP and HTTPS through the firewall.
$ sudo firewall-cmd --zone=public --permanent --add-service=http
$ sudo firewall-cmd --zone=public --permanent --add-service=https
Restart the Firewall for changes to take effect.
$ sudo firewall-cmd --reload
Install Snap.
$ sudo dnf install snapd -y
Enable the snap communication socket.
$ sudo systemctl enable --now snapd.socket
Enable classic snap support.
$ sudo ln -s /var/lib/snapd/snap /snap
Close your SSH connection and Login again as a non-root user with sudo access.
Install Certbot
$ sudo snap install --classic certbot
Get a free SSL certificate from Letâs Encrypt. Replace suitecrm.example.com
with your actual domain.
$ sudo certbot --nginx -d suitecrm.example.com -m admin@example.com --agree-tos
Restart Nginx for changes to take effect.
$ sudo systemctl restart nginx
Open your web browser, and visit your subdomain.
https://suitecrm.example.com
Accept the SuiteCRM GNU license and click Next.
localhost
as the Hostname, User, and Password created earlier.After installation is complete, access your SSH console and set the SuiteCRM directory permissions mode to 755
for CRM functions and CSS to work well.
$ sudo chmod -R 755 /var/www/suitecrm/
Restart Nginx for changes to take effect.
$ sudo systemctl restart nginx
Re-visit your domain name and log in with the administrator account to start using SuiteCRM.
https://suitecrm.example.com
You have successfully installed SuiteCRM on CentOS 8. Steps in this article also work for other RHEL distributions such as Rocky Linux 8 and Alma Linux 8. For more information, refer to the official SuiteCRM documentation.