Uncategorized

SuiteCRM installeren met Nginx op CentOS 7

 

SuiteCRM is een open source CRM (Customer Relationship Management) -software op basis van PHP. Het is de vork van de populaire CRM-software SugarCRM en is populairder geworden nadat het team achter de laatste besloot om de ontwikkeling van de gratis versie stop te zetten. SuiteCRM was genomineerd als de beste open source CRM-software bij BOSSIE 2015 en 2016.

In deze zelfstudie laten we u zien hoe u SuiteCRM installeert en configureert met Nginx als de webserver. De CRM-software wordt uitgevoerd onder de LEMP-stack met HTTPS ingeschakeld. En voor dit doel zullen we CentOS 7 als hoofdbesturingssysteem gebruiken.

Wat we gaan doen

  1. Installeer de Nginx-webserver
  2. Installeer en configureer PHP-FPM
  3. Installeer en configureer MariaDB
  4. SuiteCRM downloaden en configureren
  5. Installeer SuiteCRM via het webinstallatieprogramma
  6. Laatste configuratie

Voorwaarden

  • CentOS 7-server
  • Rootprivileges

Stap 1 - Installeer de Nginx-webserver

De eerste stap die we moeten doen om de server aan te sluiten en de basisstapel voor SuiteCRM te installeren. Maak via SSH verbinding met de server met behulp van de volgende opdracht:

ssh [e-mail beveiligd]

Nadat we als rootgebruiker verbinding hebben gemaakt, moeten we een externe repository op ons systeem installeren. In het bijzonder moeten we de EPEL-opslagruimte (Extra pakket voor Enterprise Linux) op het systeem installeren voordat Nginx wordt geïnstalleerd.

Installeer de EPEL-repository met de yum-opdracht op de volgende manier:

yum - installeer epel-release

Nu kunnen we de Nginx-webserver op het systeem installeren.

yum -y installeer nginx

Als de installatie is voltooid, start u de service en schakelt u deze in de opstarttijd automatisch in met de opdracht systemctl, zoals hieronder wordt weergegeven.

systemctl start nginx
systemctl enable nginx

Nginx-webserver is nu geïnstalleerd en wordt standaard uitgevoerd op poort 80. Controleer dit met behulp van netstat- of curl-opdrachten.

netstat -plntu
krul -I localhost

Zorg ervoor dat poort 80 de status 'LISTEN' heeft en het curl-commando geeft 200 HTTP-statuscode in de uitvoer.

Controleer of Nginx naar de juiste poorten luistert

Stap 2 - Installeer en configureer PHP-FPM

In deze stap zullen we PHP-FPM versie 7 installeren en configureren op de CentOS 7-server. Standaard biedt centOS geen repository voor de nieuwe PHP-versie 7. We moeten dus een andere repository toevoegen voor PHP-FPM 7-installatie.

Voeg nieuwe PHP 7 repository 'webtatic' toe aan het systeem met behulp van de opdracht rpm.

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installeer nu PHP 7-pakketten en -extensies met de yum-opdracht zoals hieronder wordt getoond.

sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

Als de installatie is voltooid, bewerkt u het standaard 'php.ini' configuratiebestand met vim.

vim /etc/php.ini

Wijzig de maximale uploadbestandsgrootte voor SuiteCRM-installatie in 100MB. Op zijn minst heeft SuiteCRM meer nodig dan 6MB.

upload_max_filesize = 100M

Maak de volgende CGI-regel uncomment en verander de waarde in 0.

cgi.fix_pathinfo = 0

Maak voor de configuratie van het sessiepad de regel ongedaan en verander het pad in '/ var / lib / session' zoals hieronder getoond.

session.save_path = "/ var / lib / php / session"

Dat is het. Sla de wijzigingen op en sluit vim af.

Maak nu een nieuwe map voor het sessiepad en wijzig de eigendomsrechten van de map in 'nginx' gebruiker en groep.

mkdir -p / var / lib / php / session
chown -R nginx: nginx / var / lib / php / session

Vervolgens moeten we de php-fpm-configuratie bewerken. Ga hiervoor naar de map '/etc/php-fpm.d' en bewerk het configuratiebestand www.conf.

cd /etc/php-fpm.d/
vim www.conf

Wijzig nu de gebruikers- en groepsregel in 'nginx'.

user = nginx group = nginx

In plaats van de systeempoort te gebruiken, draait PHP-FPM onder het Unix socket-bestand.

Wijzig de regel 'luisteren':

listen = /var/run/php-fpm/php-fpm.sock

Stel de machtiging in voor Unix-socketbestand en eigendom van het socketbestand, zoals hieronder weergegeven.

listen.owner = nginx listen.group = nginx listen.mode = 0660

Dat is het. Sla de wijzigingen op en verlaat de editor.

Start nu de PHP-FPM-service en voeg deze toe om automatisch te starten bij het opstarten.

systemctl start php-fpm
systemctl schakel php-fpm in

PHP-FPM is hiermee geïnstalleerd en voert het socketbestand uit.

U kunt dit controleren met de opdracht netstat:

netstat -pl | grep php

Zorg ervoor dat u het bestand php-fpm.sock ziet.

Configureer PHP-FPM

Stap 3 - Installeer en configureer MariaDB

In deze stap zullen we MariaDB installeren, vervolgens starten en inschakelen om het telkens bij het opstarten van het systeem te starten. En tot slot zullen we een nieuwe database en gebruiker maken voor SuiteCRM-installatie.

Installeer mariadb uit de CentOS-repository met behulp van de volgende yum-opdracht.

yum install -y mariadb mariadb-server

Start MariaDB-service en schakel het in om de opstarttijd te starten met behulp van de onderstaande opdrachten.

systemctl start mariadb
systemctl enable mariadb

Dus MariaDB is nu geïnstalleerd en actief. Nu moeten we het rootwachtwoord configureren met de opdracht 'mysql_secure_installation'.

mysql_secure_installation

U wordt gevraagd naar de configuratie, typ 'Y' en druk op 'Enter'.

Stel root-wachtwoord in? [Y / n] Y Nieuw wachtwoord: voer het nieuwe wachtwoord opnieuw in: verwijder anonieme gebruikers? [Y / n] Y Niet toestaan ​​dat rootaanmeldingen op afstand worden geregistreerd? [Y / n] Y Testdatabase verwijderen en er toegang toe hebben? [Y / n] Y Herlaad voorrechtstabellen nu? [Y / n] Y

Dus MariaDB root-wachtwoord is geconfigureerd.

Vervolgens moeten we een nieuwe database en een nieuwe gebruiker voor SuiteCRM-installatie maken. Log hiervoor in op de MySQL-shell met gebruiker 'root' en uw wachtwoord.

mysql -u root -p

Maak een nieuwe database met de naam 'suitecrm_db' en een nieuwe gebruiker 'crmadmin' met het wachtwoord 'hakase-labs123'. Dit alles kan worden gedaan met behulp van de onderstaande MySQL-zoekopdrachten.

CREATE DATABASE suitecrm_db;
CREER GEBRUIKER 'crmadmin' @ 'localhost' GEÏDENTIFICEERD DOOR 'hakase-labs123';
VERLEEN ALLE PRIVILEGES OP suitecrm_db. * AAN 'crmadmin' @ 'localhost';
VOORRECHTEN VOOR FLU'S;

Dus de databaseconfiguratie voor SuiteCRM-installatie is voltooid.

Maak SuiteCRM-database

Stap 4 - Download en configureer SuiteCRM

In deze stap zullen we enkele taken uitvoeren voor de installatie van SuiteCRM. We zullen de SuiteCRM-broncode downloaden, Firewalld configureren, nieuwe SSL-letsencrypt genereren en de nginx virtuele host voor SuiteCRM configureren. Laten we beginnen.

SuiteCRM downloaden

Installeer git op uw systeem als u dat nog niet doet met de onderstaande yum-opdracht.

yum - installeer git

Ga nu naar de map '/ opt' en download de SuiteCRM-code met de opdracht git zoals hieronder wordt weergegeven.

cd / opt /
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

SuiteCRM downloaden

Maak daarna een cachemap, wijzig de machtigingen voor sommige bestanden en mappen in de suitecrm-map en wijzig vervolgens de eigenaar van alle suitecrm-code in 'nginx' gebruiker en groep.

cd / opt / suitecrm
mkdir -p / opt / suitecrm / cache
chmod -R 775 cache aangepaste modules thema's data upload config_override.php
chown nginx: nginx -R / opt / suitecrm

Dus de suiteCRM-code is gedownload naar de server in de map '/ opt / suitecrm /'.

Maak direcctories

Firewall instellen

Als Firewalld niet op uw server wordt uitgevoerd, installeert u het met de volgende opdracht.

yum -y installeer firewalld

Start de service en schakel deze in tijdens het opstarten.

systemctl start firewalld
systemctl enable firewalld

Vervolgens moeten we nieuwe poorten HTTP en HTTPS openen. Het wordt gebruikt voor SuiteCRM-toegang. Voer hiervoor de volgende firewall-cmd-opdrachten uit.

firewall-cmd -add-service = http -permanent
firewall-cmd -add-service = https -permanent

Herlaad nu firewalld-regels met behulp van de volgende opdracht.

firewall-cmd -rlaad

Configureer de firewall

Dus nu zijn nieuwe HTTP- en HTTPS-poorten toegevoegd aan Firewalld. Als u detailconfiguratie wilt zien, voert u de onderstaande opdracht uit.

firewall-cmd -list-all

Lijst Firewall-instellingen

Genereer nieuwe SSL Letsencrypt

In deze zelfstudie gebruiken we SSL voor SuiteCRM-toegang. En we zullen voor dat doel gratis SSL-certificaten van letsencrypt gebruiken.

Om nieuwe SSL-letsencrypt-certificaten te genereren, moeten we eerst de letsencrypt-opdrachttool 'certbot' op ons systeem installeren. Het is beschikbaar in de CentOS-repository. Installeer certbot met de volgende yum-opdracht.

yum -y installeer certbot

Wanneer de certbot-installatie is voltooid, genereert u een SSL-certificaatbestand voor suiteCRM-domeinnaam 'suitecrm.hakase-labs.co'.

Voer de onderstaande opdracht uit om SSL-certificaatbestanden te genereren.

certbot zeker –standalone -d suitecrm.hakase-labs.co

U wordt gevraagd naar het e-mailadres voor het vernieuwen van de melding - typ uw e-mailadres en druk op Enter om door te gaan.

Typ voor de Letsencrypt TOS 'A' om akkoord te gaan en druk nogmaals op Enter. En voor de vraag om het e-mailadres te delen, typ 'N' en druk op Enter.

Maak een SSL-certificaat

Wanneer het genereren van certificaten is voltooid, krijgt u het resultaat zoals hieronder.

SSL-certificaat met succes aangemaakt

Nieuwe certificaatbestanden worden gegenereerd in de map '/etc/letsencrypt/live/domain.com'.

Configureer SuiteCRM Nginx Virtual host

Ga naar de Nginx-configuratiemap '/ etc / nginx' en maak een nieuw bestand suitecrm.conf in de map conf.d met de Vim-editor.

cd / etc / nginx /
vim conf.d / suitecrm.conf

Plast daar SuiteCRM Nginx virtuele host hieronder.

# Server Config - hakase-labs server {luister 80; servernaam suitecrm.hakase-labs.co; # Automatisch omleiden naar HTTPS retourneer 301 https: // $ host $ request_uri; } # Nginx SSL voor SuiteCRM server {server_name suitecrm.hakase-labs.co; # Schakel http2 in luister 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 + EDHX-GAS-SHAX-AHX-NUMA RSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-RSA-AES256-SHA: DHE-RSA-AES256-SHA128: DHE- RSA-AES256-SHA256: DHE-RSA-AES128-SHA: DHE-RSA-AES256-SHA: ECDHE-RSA-DES-CBC256-SHA: EDH-RSA-DES-CBC128-SHA: AES3-GCM-SHA3: AES256- GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: DES-CBC256-SHA: HIGH: aNULL: eNULL: EXPORT: DES: MD128: PSK:!!!!! RC3 "; client_max_body_size 5M; index index.php index.html index.htm; root / opt / suitecrm; locatie / {root / opt / suitecrm; index index.php index.html index.htm; } error_page 4 50 500 502 /503x.html; error_log /var/log/nginx/suitecrm.irsyadf.me.error.log; location = /504x.html {root / usr / share / nginx / html; } ## Afbeeldingen en statische inhoud worden op verschillende locaties behandeld ~ * ^. +. (Jpg | jpeg | gif | css | png | js | ico | xml | svg | wgoff50) $ {access_log off; verloopt maximaal; root / opt / suitecrm; } locatie ~ .php $ {try_files $ uri = 50; fastcgi_pass unix: /var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; omvatten fastcgi_params; } locatie ~ /.ht {alles weigeren; }}

Dat is het. Sla de wijziging op en verlaat Vim.

Test nu de configuratie van nginx en zorg dat er geen fout is. Zodra dat is gebeurd, start u de service opnieuw.

nginx -t
systemctl herstart nginx

Hiermee is de nginx-configuratie voor SuiteCRM-installatie voltooid.

Configureer Nginx voor SuiteCRM

Stap 5 - SuiteCRM Web Installer

Open uw webbrowser en ga naar de SuiteCRM-domeinnaam: 'suitecrm.hakase-labs.co'.

U wordt doorgestuurd naar de HTTPS-verbinding install.php en u krijgt de pagina over GNU AFFERO License. Vink het vakje 'Ik ga akkoord' aan en klik op 'Volgende'.

SuiteCRM web-installatieprogramma

Controleer op de systeemomgevingpagina of alle resultaten 'OK' zijn.

Vereisten controleren

En klik op 'Volgende' om door te gaan.

Vervolgens komt de configuratie van beheerders en databases. Typ uw database-info, zoals dbname, dbuser en dbpassword. Voor de beheerdersconfiguratie typt u uw gebruikersnaam, e-mailadres en wachtwoord.

Database-instellingen

Scrol naar beneden en klik op 'Volgende' om door te gaan met het installeren van SuiteCRM.

Wacht even tot de installatie is voltooid en u wordt doorgestuurd naar de inlogpagina zoals hieronder wordt weergegeven.

Inloggen SuiteCRM

Typ op deze pagina de admin-gebruiker en het wachtwoord en druk vervolgens op de knop 'Inloggen'.

En u krijgt het SuiteCRM-dashboard zoals hieronder weergegeven.

SuiteCRM-dashboard

Dus SuiteCRM is geïnstalleerd.

Stap 6 - Eindconfiguratie

In deze laatste stap moeten we configuratie aan de cronjob toevoegen.

Kortom, we moeten nieuwe cron aanmaken als nginx-gebruiker en -groep.

sudo crontab -e -u nginx

En plak de volgende configuratie.

* * * * * cd / opt / suitecrm; php -f cron.php> / dev / null 2> & 1

Opslaan en afsluiten.

Dat is het. De SuiteCRM-installatie met Nginx-webserver op CentOS 7 is voltooid.

Referentienummer

bron