SuiteCRM is a free and open source alternative to the popular customer relationship management system SugarCRM. It became popular when SugarCRM decided to stop development of its community edition, on which SuiteCRM is based. This guide will explain the installation of SuiteCRM on a Debian 10 system.
Prerequisites
- A fresh Debian 10 system.
- Root SSH or console access.
- A domain name pointing to the server’s IP address.
NOTE: All occurences of crm.example.net
should be replaced with your own domain name.
Step 1: update and install required software.
apt update
apt upgrade -y
SuiteCRM is written in PHP, and can run on Apache2, so you will need to install the Apache web server, PHP itself, PHP modules, and MariaDB.
apt install -y apache2 mariadb-server mariadb-client php php-common php-zip php-mysql php-gd php-curl php-imap php-mbstring php-xml php-json libapache2-mod-php unzip libpcre3
Step 3: MariaDB setup.
Before creating a database, tighten your MariaDB security by running the mysql_secure_installation
script:
mysql_secure_installation
Answer all of the questions as shown below and make sure you choose a strong password for the root user:
Enter current password for root: Press <enter>
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Once the script exits, log into the MySQL shell with the following command:
mysql -u root -p
Enter your root password you chose earlier, then the following to create a database for SuiteCRM:
MariadDB [(none)]> CREATE DATABASE suitecrm;
Create a database user with the following command:
MariaDB [(none)]> CREATE USER 'suitecrm'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
Grant privileges to the database:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrm'@'localhost';
Exit from the MySQL shell:
MariaDB [(none)]> \q
Step 4: Download SuiteCRM.
First, copy the download link for the latest stable version of SuiteCRM from their official download page, and download it as follows (use the latest URL instead):
wget -O suitecrm.zip https://suitecrm.com/files/162/SuiteCRM-7.11/448/SuiteCRM-7.11.6.zip
unzip suitecrm.zip
rm suitecrm.zip
Next, move the extracted directory to the web root:
mv SuiteCRM* /var/www/html/suitecrm
Next, set correct ownership and permissions:
cd /var/www/html/suitecrm
chown -R www-data:www-data .
chmod -R 755 .
chmod -R 775 cache custom modules themes data upload
chmod 775 config_override.php 2> /dev/null
Step 5: PHP configuration.
Using a text editor of your choice, open /etc/php/7.3/apache2/php.ini
for editing and make changes according to the following values:
memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 64M
Step 6: Configure Apache for SuiteCRM.
Create an Apache virtual host configuration file for SuiteCRM using a text editor of your choice. For example:
vim /etc/apache2/sites-available/suitecrm80.conf
Add the following lines:
<VirtualHost *:80>
DocumentRoot /var/www/html/suitecrm
ServerName crm.example.net
<Directory /var/www/html/suitecrm>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/suitecrm-error.log
CustomLog /var/log/apache2/suitecrm-access.log common
</VirtualHost>
Then save and close the file. Disable the default site and enable the newly created one:
a2ensite suitecrm80.conf
a2dissite 000-default.conf
Finally, reload Apache:
systemctl reload apache2
Step 7: HTTPS configuration (optional, highly recommended)
Install certbot
, which we will use to obtain a free SSL certificate:
apt install -y certbot
Temporarily stop the Apache service:
systemctl stop apache2.service
Obtain a certificate for your domain:
certbot certonly --standalone --agree-tos -m youremail@domain.tld -d crm.example.net
Restart Apache:
systemctl start apache2.service
To setup redirection from HTTP to HTTPS, open the file /etc/apache2/sites-available/suitecrm80.conf
in a text editor and add the following lines before the closing virtual host tag (</VirtualHost>
)
RewriteEngine on
RewriteCond %{SERVER_NAME} =crm.example.net
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Then enable the apache rewrite and ssl modules:
a2enmod rewrite
a2enmod ssl
We’ll now create the necessary configuration for HTTPS, paste the following in /etc/apache2/sites-available/suitecrm443.conf
:
<VirtualHost *:443>
DocumentRoot /var/www/html/suitecrm
ServerName crm.example.net
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/crm.example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/crm.example.net/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
<Directory /var/www/html/suitecrm>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/suitecrm-error.log
CustomLog /var/log/apache2/suitecrm-access.log common
</VirtualHost>
Then enable it and restart the apache service:
a2ensite suitecrm443.conf
systemctl restart apache2.service
Step 8: Web Installer
Open your web browser and navigate to crm.example.net/install.php
to finalize the installation process. Follow the steps below:
1. You will first have to read and accept the license, terms and conditions, then click “Next”.
2. SuiteCRM will check your environment, make sure all tests show “OK” then proceed to the next step.
3. Fill in the form as shown below:
- Specify Database Type: MySQL.
- Database Name:
suitecrm
. - Host Name:
localhost
. - User:
suitecrm
. - Password: Enter the password you chose during MySQL user creation in step 3.
- SuiteCRM Database User:
Same as Admin User
. - SuiteCRM Application Admin Name: Username of your choice.
- SuiteCRM Admin User Password: Strong password of your choice.
- URL of SuiteCRM Instance:
http://crm.example.net
orhttps://crm.example.net
if you configured HTTPS. - Email Address: A valid email address for the site administrator.
Modify the remaining settings if needed.
Step 9: Crontab
We need to setup a cron job in order to run SuiteCRM schedulers, use this command:
crontab -e -u www-data
And add the following line to the bottom:
* * * * * cd /var/www/html/suitecrm; php -f cron.php > /dev/null 2>&1
Your SuiteCRM installation is now complete.
In Step 6: Configure Apache for SuiteCRM.
…
after
a2ensite suitecrm80.conf
insert
a2dissite 000-default.conf
after
systemctl reload apache2
Step 7 …
Yep, thanks!
very good. thanks
Excellent tutorial, works great with version 7.11.20 and Debian 10