How To Configure Nginx for SugarCRM

1. Introduzione

Per esigenze varie potrebbe essere necessario utilizzare nginx come componente Web Server per l’installazione di SugarCRM in sostituzione di Apache o IIS. SugarCRM non riporta (vedi SugarCRM Supported Platformnginx come componente supportato dalla propria piattaforma, questo si traduce nel perdere il supporto per installazioni (ovviamente su edizioni commerciali)  di SugarCRM su questo Web Server e nell’andare sicuramente incontro a problemi di configurazione.

Il Web Server nginx è consigliato da SugarCRM in quelle configurazioni che richiedono alta scalabilità, affidando a questo la responsabilità di Load Balancer, i server con le istanze di SugarCRM sono sempre basati su Apache come Web Server. Per maggiori approfondimenti sull’argomento vi rimando al documento SugarCRM Scalability and Performance Benchmarks.

2. Configurazione di Nginx

Fino alla versione 6.5 (sia Community Edition sia Commercial Edition) la configurazione predefinita di nginx in ambiente LEMP (Linux, nginx, MySQL, and PHP) è più che sufficiente per installare e eseguire SugarCRM senza intoppi apparenti.

Dalla nuova versione 7 di SugarCRM sono state introdotte numerose caratteristiche basate sui servizi RESTful tali da rendere la corretta configurazione del Web Server un fattore importante per la buona riuscita dell’installazione e esecuzione di SugarCRM.

La parola chiave di una corretta configurazione è .htaccess. Cosa vuol dire? Sul file .htaccess sono indicate le regole di riscrittura (o rewrite url) degli URL per i servizi RESTful di SugarCRM. Dalla versione 7 di SugarCRM, anche la GUI (chiamata in codice Sugar UX®utilizza pesantemente i servizi RESTful, quindi, l’errata configurazione di nginx comporta il mal funzionamento di SugarCRM. In Figura 1 è mostrato un esempio di SugarCRM non funzionante anche se l’installazione è andata a buon fine.

Figura 1 - Errore durante il caricamento dell'applicazione

Figura 1 – Errore durante il caricamento dell’applicazione

L’errore evidenziato potrebbe ingannare con l’errore http 404, tende a far pensare a un errore d’installazione, al contrario, indica un errata (direi assente) configurazione delle rewrite url. In effetti la URL che tenta di richiedere il browser punta a un servizio RESTful ma l’errata configurazione causa un errore di accesso alla risorsa con un codice http 404.

Il Listato 1 mostra il file .htaccess (creato in fase d’installazione di SugarCRM) con in evidenza le sole regole che riguardano i servizi RESTful..

La soluzione per un corretta configurazione di nginx è trasformare le regole indicate su .htaccess in regole nginx. Purtroppo nginx non supporta .htaccess e la sintassi Apache per le rewrite url, l’operazione di conversione è quindi da fare manualmente. Al Listato 2 sono mostrate le regole di rewrite url riconvertite in formato nginx.

Una volta revisionata la configurazione di nginx con le regole di rewrite url SugarCRM dovrebbe funzionare correttamente, compresi i servizi RESTful.

La configurazione riportata al Listato 2 fa riferimento ad una configurazione per una sola istanza di SugarCRM; un FQDN per una sola istanza di SugarCRM. Potrebbe presentarsi la necessità di avere un FQDN per più istanze di SugarCRM, in questo caso la configurazione di Nginx deve essere leggermente revisionata. Assumendo di disporre un layout d’installazione del tipo:

  • ROOT Directory: /home/sugarcrm/application
    • SugarCRM amusarra instance Directory /home/sugarcrm/application/instance_amusarra/
    • SugarCRM shirus instance Directory /home/sugarcrm/application/instance_shirus/

il file di configurazione di Nginx sarà come quello mostrato al Listato 3.

In Figura 2 l’istanza SugarCRM /instance_amusarra correttamente in esecuzione.

Figura 2. SugarCRM Multi instance su Nginx

Figura 2. SugarCRM Multi instance su Nginx

3. Conclusioni

Ho scritto questo breve post come risposta a questa discussione:

  • guest: Come mai SugarCRM 7.1 non funziona, non mostra neppure la login page?
  • amusarra: Strano, su quale versione di Apache e PHP è stato installato?
  • guest: Su nginx e PHP 5.3
  • amusarra: Bene, allora è probabile che non funzioni…..

Per esperienza è sempre cosa buona e giusta rispettare le indicazioni sullo stack software (e eventualmente hardware) del produttore, a maggior ragione se si tratta di prodotti commerciali.

Liferay Portal Security AuditCos'è e come funzione il framework di Security Audit

Vi siete mai chiesti cos'è e come funziona il sistema di Security Audit di Liferay? Ho cercato di rispondere alla domanda non soffermandomi solo al "cosè e come funziona", sono andato ben oltre. Non vi resta che leggere questo EBook per scoprire.

Ottieni il tuo EBook

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...

Liferay SSL/TLS SecurityCome configurare il bundle Liferay per abilitare il protocollo SSL/TLS

Sei curioso di scoprire come configurare il bundle Liferay per funzionare in modalità sicura tramite protocollo SSL/TLS? In questo eBook ( #LFRDEPGUIDE ) ti spiego come farlo step-by-step; per il bundle Apache Tomcat e WildFly. Ricorda di lasciare un tuo feedback dopo averlo letto.