SuiteCRM je open source CRM (Customer Relationship Management) software založený na PHP. Je to fork populárního CRM softwaru SugarCRM a stal se populárnějším poté, co se tým za ním rozhodl zastavit vývoj bezplatné verze. SuiteCRM byl nominován jako nejlepší open source CRM software na BOSSIE 2015 a 2016.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat SuiteCRM pomocí Nginx jako webového serveru. Software CRM poběží pod zásobníkem LEMP s povoleným HTTPS. A pro tento účel budeme používat CentOS 7 jako hlavní OS.
Co uděláme
- Nainstalujte webový server Nginx
- Nainstalujte a nakonfigurujte PHP-FPM
- Nainstalujte a nakonfigurujte MariaDB
- Stáhněte si a nakonfigurujte SuiteCRM
- Nainstalujte SuiteCRM prostřednictvím webového instalačního programu
- Konečná konfigurace
Předpoklady
- Server CentOS 7
- Oprávnění uživatele root
Krok 1 – Instalace webového serveru Nginx
Prvním krokem je připojení serveru a instalace základního zásobníku pro SuiteCRM. Připojte se k serveru přes SSH pomocí následujícího příkazu:
ssh [email protected]
Po připojení jako uživatel root musíme do našeho systému nainstalovat úložiště třetí strany. Konkrétně musíme před instalací Nginx do systému nainstalovat úložiště EPEL (Extra Package for Enterprise Linux).
Nainstalujte úložiště EPEL pomocí příkazu yum následujícím způsobem:
yum -y install epel-release
Nyní můžeme do systému nainstalovat webový server Nginx.
yum -y install nginx
Pokud je instalace dokončena, spusťte službu a povolte její automatické spouštění při spouštění pomocí příkazu systemctl, jak je uvedeno níže.
systemctl start nginx
systemctl enable nginx
Webový server Nginx je nyní nainstalován a ve výchozím nastavení běží na portu 80. Zkontrolujte jej pomocí příkazů netstat nebo curl.
netstat -plntu
curl -I localhost
Ujistěte se, že port 80 je ve stavu 'LISTEN' a příkaz curl dává na výstupu stavový kód HTTP 200.
Krok 2 – Instalace a konfigurace PHP-FPM
V tomto kroku nainstalujeme a nakonfigurujeme PHP-FPM verze 7 na server CentOS 7. Ve výchozím nastavení centOS neposkytuje úložiště pro novou verzi PHP 7. Musíme tedy přidat jiné úložiště pro instalaci PHP-FPM 7.
Přidejte nové úložiště PHP 7 'webtatic' do systému pomocí příkazu rpm.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Nyní nainstalujte balíčky a rozšíření PHP 7 pomocí příkazu yum, jak je znázorněno níže.
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
Pokud je instalace dokončena, upravte výchozí konfigurační soubor 'php.ini' pomocí vim.
vim /etc/php.ini
Změňte maximální velikost nahrávaného souboru pro instalaci SuiteCRM na 100 MB. Přinejmenším potřebuje SuiteCRM více než 6 MB.
upload_max_filesize = 100M
Odkomentujte následující řádek CGI a změňte hodnotu na 0.
cgi.fix_pathinfo=0
Pro konfiguraci cesty relace odkomentujte řádek a změňte cestu na '/var/lib/session', jak je uvedeno níže.
session.save_path = "/var/lib/php/session"
A je to. Uložte změny a ukončete vim.
Nyní vytvořte nový adresář pro cestu relace a změňte oprávnění k vlastnictví adresáře na uživatele a skupinu 'nginx'.
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Dále musíme upravit konfiguraci php-fpm. Za tímto účelem přejděte do adresáře '/etc/php-fpm.d' a upravte konfigurační soubor www.conf.
cd /etc/php-fpm.d/
vim www.conf
Nyní změňte řádek uživatele a skupiny na 'nginx'.
user = nginx
group = nginx
Místo použití systémového portu bude PHP-FPM běžet pod souborem soketu unix.
Změňte řádek „poslouchat“:
listen = /var/run/php-fpm/php-fpm.sock
Nastavte oprávnění pro soubor soketu Unix a vlastnictví souboru soketu, jak je uvedeno níže.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
A je to. Uložte změny a ukončete editor.
Nyní spusťte službu PHP-FPM a přidejte ji, aby se spouštěla automaticky při startu.
systemctl start php-fpm
systemctl enable php-fpm
Tímto se nainstaluje PHP-FPM a spustí se soubor soketu.
Můžete to zkontrolovat pomocí příkazu netstat:
netstat -pl | grep php
Ujistěte se, že vidíte soubor php-fpm.sock.
Krok 3 – Instalace a konfigurace MariaDB
V tomto kroku nainstalujeme MariaDB, poté spustíme a povolíme spuštění při každém startu systému. A nakonec vytvoříme novou databázi a uživatele pro instalaci SuiteCRM.
Nainstalujte mariadb z úložiště CentOS pomocí následujícího příkazu yum.
yum install -y mariadb mariadb-server
Spusťte službu MariaDB a povolte jí spustit čas spouštění pomocí příkazů níže.
systemctl start mariadb
systemctl enable mariadb
MariaDB je tedy nyní nainstalována a spuštěna. Nyní musíme nakonfigurovat heslo uživatele root pomocí příkazu 'mysql_secure_installation'.
mysql_secure_installation
Budete dotázáni na konfiguraci, napište 'Y' a stiskněte 'Enter'.
Set root password? [Y/n] Y
New password:
Re-enter new password:
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
Takže bylo nakonfigurováno root heslo MariaDB.
Dále musíme vytvořit novou databázi a nového uživatele pro instalaci SuiteCRM. Za tímto účelem se přihlaste do prostředí MySQL pomocí uživatelského „root“ a svého hesla.
mysql -u root -p
Vytvořte novou databázi s názvem 'suitecrm_db' a nového uživatele 'crmadmin' s heslem 'hakase-labs123'. To vše lze provést pomocí níže uvedených dotazů mysql.
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
Konfigurace databáze pro instalaci SuiteCRM byla tedy dokončena.
Krok 4 – Stažení a konfigurace SuiteCRM
V tomto kroku provedeme některé úkoly pro instalaci SuiteCRM. Stáhneme si zdrojový kód SuiteCRM, nakonfigurujeme Firewalld, vygenerujeme nový SSL Letsencrypt a nakonfigurujeme virtuálního hostitele nginx pro SuiteCRM. Takže začneme.
Stáhnout SuiteCRM
Pokud ještě ne, nainstalujte git do svého systému pomocí příkazu yum níže.
yum -y install git
Nyní přejděte do adresáře '/opt' a stáhněte si kód SuiteCRM pomocí příkazu git, jak je uvedeno níže.
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
Poté vytvořte adresář mezipaměti, změňte oprávnění pro některé soubory a adresáře v adresáři suitecrm a poté změňte vlastníka veškerého kódu suitecrm na uživatele a skupinu „nginx“.
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm
Kód suiteCRM byl tedy stažen na server v adresáři '/opt/suitecrm/'.
Konfigurovat bránu firewall
Pokud na svém serveru nemáte spuštěnou bránu firewall, nainstalujte ji pomocí následujícího příkazu.
yum -y install firewalld
Spusťte službu a povolte její spuštění při spouštění.
systemctl start firewalld
systemctl enable firewalld
Dále musíme otevřít nové porty HTTP a HTTPS. Používá se pro přístup k SuiteCRM. K tomu spusťte následující příkazy firewall-cmd.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
Nyní znovu načtěte pravidla brány firewall pomocí následujícího příkazu.
firewall-cmd --reload
Takže nyní byly do brány firewall přidány nové porty HTTP a HTTPS. Pokud chcete vidět podrobnou konfiguraci, spusťte níže uvedený příkaz.
firewall-cmd --list-all
Vygenerovat nový SSL Letsencrypt
V tomto tutoriálu budeme používat SSL pro přístup k SuiteCRM. A pro tento účel budeme používat bezplatné certifikáty SSL od letsencrypt.
Abychom mohli vygenerovat nové certifikáty SSL letsencrypt, musíme do našeho systému nejprve nainstalovat příkaz letsencrypt „certbot“. Je k dispozici v úložišti CentOS. Nainstalujte certbot pomocí následujícího příkazu yum.
yum -y install certbot
Po dokončení instalace certbota vygenerujte soubor certifikátu SSL pro název domény suiteCRM 'suitecrm.hakase-labs.co'.
Spusťte níže uvedený příkaz a vygenerujte soubory certifikátu SSL.
certbot certonly --standalone -d suitecrm.hakase-labs.co
Budete dotázáni na e-mailovou adresu pro oznámení o obnovení – zadejte svůj e-mail a pokračujte stisknutím klávesy Enter.
Pro Letsencrypt TOS zadejte 'A' pro souhlas a znovu stiskněte Enter. A pro dotaz na sdílenou e-mailovou adresu zadejte 'N' a stiskněte Enter.
Po dokončení generování certifikátu získáte níže uvedený výsledek.
Nové soubory certifikátů se generují v adresáři '/etc/letsencrypt/live/domain.com'.
Konfigurace virtuálního hostitele SuiteCRM Nginx
Přejděte do konfiguračního adresáře Nginx '/etc/nginx' a vytvořte nový soubor suitecrm.conf v adresáři conf.d pomocí editoru Vim.
cd /etc/nginx/
vim conf.d/suitecrm.conf
Níže vložte virtuální hostitel SuiteCRM Nginx.
# Server Config - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL for SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Enable http2
listen 443 http2 ssl;
# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /usr/share/nginx/html;
}
## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
A je to. Uložte změny a ukončete Vim.
Nyní otestujte konfiguraci nginx a ujistěte se, že nedošlo k chybě. Jakmile to uděláte, restartujte službu.
nginx -t
systemctl restart nginx
Tím byla konfigurace nginx pro instalaci SuiteCRM dokončena.
Krok 5 – Webový instalační program SuiteCRM
Otevřete webový prohlížeč a navštivte název domény SuiteCRM:'suitecrm.hakase-labs.co'.
Budete přesměrováni na HTTPS připojení install.php a dostanete stránku o licenci GNU AFFERO. Zaškrtněte políčko 'I Accept' a klikněte na 'Next'.
Na stránce systémového prostředí se ujistěte, že jsou všechny výsledky 'OK'.
A pokračujte kliknutím na 'Další'.
Následuje konfigurace správce a databáze. Zadejte informace o databázi, jako je název databáze, dbuser a heslo db. Pro konfiguraci správce zadejte své uživatelské jméno, e-mail a heslo.
Přejděte dolů a klikněte na 'Další' pro pokračování v instalaci SuiteCRM.
Počkejte chvíli, až bude instalace dokončena, a budete přesměrováni na přihlašovací stránku, jak je uvedeno níže.
Na této stránce zadejte uživatele a heslo správce a poté stiskněte tlačítko 'Přihlásit se'.
A získáte řídicí panel SuiteCRM, jak je znázorněno níže.
SuiteCRM byl tedy nainstalován.
Krok 6 – Konečná konfigurace
V tomto posledním kroku musíme přidat konfiguraci do cronjob.
V podstatě potřebujeme vytvořit nový cron jako uživatele a skupinu nginx.
sudo crontab -e -u nginx
A vložte následující konfiguraci.
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
Uložte a ukončete.
A je to. Instalace SuiteCRM s webovým serverem Nginx na CentOS 7 byla dokončena.