Vuoi installare vTiger dal sorgente?

vTiger è un ottimo CRM che funziona in ambiente LAMP, multilingua, vasto supporto (documentazione, community e professionale), con una versione open source che chiunque può liberamente usarlo e personalizzarlo come crede.
Ecco un tutorial pratico che, passo, passo, descrive l'installazione partendo dal pacchetto ZIP community edction.

Panoramica

Procediamo con la descrizione dell'installazione on premisis di vTiger 8.0 CE in un server Ubuntu 22.04 LTS.
Ipotizziamo il seguente ambiente:

  • hostname: www.example.com
  • Apache 2
  • PHP 8.3
  • MariaDB community 11.2
  • vTiger 8.0 Open Source Edition

Intenzionalmente tralasciamo gli aspetti di securizzazione del server che si ipotizzano già impostati e gli aspetti di tuning per performance migliori.

Fasi preliminari

Procediamo con l'aggiornamento del server, l'installazione dell'ambiente LAMP e la creazione del database.
Se questi elementi sono già a posto si può saltare subito al capitolo successivo.

Aggiornamento

Aggiorniamo Ubuntu:

  • apriamo un terminale autenticandoci con un utente con diritti di amministrazione
  • diamo il comando di aggiornamento

sudo apt update && sudo apt -y full-upgrade


Installare Apache

  • Sempre da terminale diamo il seguente comando

sudo apt install -y apache2

Installare PHP

La versione 8.3 di PHP non è di serie in Ubuntu, pertanto aggiungiamo un repo PPA.

  • Aggiungiamo certificati ed un paio di tool

sudo apt install -y ca-certificates apt-transport-https software-properties-common lsb-release curl wget

  • aggiungiamo il repo per PHP 8.3

sudo add-apt-repository ppa:ondrej/php -y

  • aggiorniamo e installiamo PHP

sudo apt upgrade
sudo apt install -y php8.3 libapache2-mod-php8.3
sudo apt install -y php8.3-cli php8.3-mysql php8.3-zip php8.3-mbstring php8.3-xmlrpc php8.3-curl php8.3-soap php8.3-gd php8.3-xml php8.3-intl php8.3-ldap php8.3-apcu php8.3-opcache

  • riavviamo Apache per caricare PHP

sudo systemctl restart apache2

Installiamo MariaDB

Anche per MariaDB di serie non abbiamo la versione 11. Pertanto aggiungiamo il repo ufficiale di MariaDB da cui installeremo il database.

  • Installiamo il repo di MariaDB

sudo curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=11.2

  • installiamo MariaDB

sudo apt install -y mariadb-server mariadb-client

  • abilitiamo e avviamo MariaDB

sudo systemctl enable mariadb --now
sudo systemctl status mariadb

  • verifichiamo la versione running

mariadb -V

  • completiamo l'inizializzazione con il tool di securizzazione ``mariadb-secure-installation``
    NB 1: con questo tool impostiamo la password per l'utente root del Database
    NB 2: semplificando a tutte le richieste si risponde "Yes"
    NB 3: a titolo di esempio impostiamo la password "Root32My#PassT3Fg" per l'utente root di MariaDB

sudo mariadb-secure-installation
    Enter current password for root (enter for none):  # invio
    [ ... ]
    Switch to unix_socket authentication [Y/n]
    [ ... ]
    Change the root password? [Y/n] 
    New password: Root32My#PassT3Fg
    Re-enter new password: Root32My#PassT3Fg
    [ ... ]
    Remove anonymous users? [Y/n]
    [ ... ]
    Disallow root login remotely? [Y/n]
    [ ... ]
    Remove test database and access to it? [Y/n]
    [ ... ]
    Reload privilege tables now? [Y/n]
    [ ... ]
    Thanks for using MariaDB!

MariaDB è installato, inizializzato e securizzato.

Creazione del DB

Creiamo un database per vTiger con le seguenti caratteristiche:

  • Nome Database: vtiger_DB
  • Server Database: localhost
  • Utente del Database: vtiger_user
  • Password Utente: vtiger_Pas22#FF

Procediamo:

  • connettiamoci a MariaDB

sudo mariadb -u root

  • diamo la seguente query

CREATE USER 'vtiger_user'@'localhost' IDENTIFIED BY 'vtiger_Pas22#FF';
CREATE DATABASE vtiger_DB;
GRANT ALL PRIVILEGES ON vtiger_DB.* TO 'vtiger_user'@'localhost';
FLUSH PRIVILEGES;
QUIT;

Installiamo vTiger

Completate le operazioni preliminari passiamo all'installazione di vTiger.
Procederemo con un tuning di PHP, di Apache e, dopo aver scarica il pacchetto, il provitioning di vTiger.
Ipotizziamo che vTiger è in vhost di Apache.

Tuning di PHP

  • Editiamo php.ini

sudo nano /etc/php/8.3/apache2/php.ini

  • aggiorniamo le seguenti stringhe con la cerretto timezone
    NB: i setting sono dimensionamenti minimi.

date.timezone = Europe/Rome
memory_limit = 256M
upload_max_filesize = 64M
display_errors = On
log_errors = Off

Tuning di Apache

  • Abilitiamo il rewrite

sudo a2enmod rewrite

  • perfezioniamo la configurazione del vhot

sudo nano /etc/apache2/sites-enabled/example.com.conf

 

<VirtualHost *:80>
    ServerAdmin Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
    ServerName www.example.com
    ServerAlias crm.example.com
    DocumentRoot /var/www/example.com/html
     
    <Directory /var/www/example.com/html/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
     
    ErrorLog /var/log/apache2/example.com_error.log
    CustomLog /var/log/apache2/example.com_access.log combined
</VirtualHost>

  • verifichiamo che tutte le configurazioni siano sintatticamente corrette

sudo apachectl -t

  • riavviamo Apache

sudo systemctl restart apache2

Provisioning di vTiger

  • Scarichiamo il pacchetto in una directory di lavoro temporaneo

mkdir Temp
cd Temp
wget "https://sourceforge.net/projects/vtigercrm/files/vtiger%20CRM%208.0.0/Core%20Product/vtigercrm8.0.0.tar.gz"

  • estraiamo il pacchetto

sudo tar xfz ./vtigercrm8.0.0.tar.gz -C /var/www/example.com/
sudo mv /var/www/example.com/vtigercrm/* /var/www/example.com/html/
sudo rm -R /var/www/html/vtigercrm

  • creiamo il file per il rewrite automatico

sudo cp /var/www/example.com/html/htaccess.txt /var/www/example.com/html/.htaccess

  • correggiamo i permessi

sudo chown www-data:www-data -R /var/www/example.com/html/.*

  • apriamo, da un desktop, un browser e colleghiamoci all'URL della nostra installazione https://www.example.com
  • cliccare sul bottone "Next"

  • leggere la licenza e cliccare su "I Agree"

  • la nuova pagina riporta il report dei requisiti. Cliccare sul bottone "Next"

  • compilare la form con i dati richiesti
    NB: la password per admin, in questo tutorial, è admin#AfT9946

  • la nuova pagina riporta il report dei dati impostati. Cliccare sul bottone 

  • dopo la creazione del DB vengono chiesti i dati per iscriversi alla newsletter di vTiger

  • a questo punto parte la creazione delle tabelle e la finalizzazione dell'installazione. L'operazione necessita di qualche tempo.

  • Al termine possiamo scegliere quali moduli pre-attivare. Scegliamo e clicchiamo sul bottone "Next"

 

  • dopo questo veniamo automaticamente loggati come "admin" e avremo la form del primo login dove indicare le preferenze fondamentali

  • impostare la form e cliccare sul bottone "Get Started"

Eccoci loggati nella dashboard del nostro CRM vTiger!
Dopo l'installazione è tutto vuoto. Dobbiamo scegliere i widget che desideriamo in dashboard, popolare il database con clienti, procedere ad alimentare il magazzino, creare prodotti, pianificare campagne, ecc...
Con queste attività vedremo rapidamente riempirsi la dashboard ed i moduli.


Completamento e Fixing

A questo punto dobbiamo personalizzare la nostra installazione, creare gli utenti, il nostro staff, assegnare i ruoli e fare il data entry sopra accennato.

Dobbiamo anche procedere con un piccolo fixing e alla definizione dei cron per una completa automazione dell'installazione.

Fixing

Gli utenti non amministratori non riescono a vedere i clienti e le liste. Se inseriscono un cliente l'operazione va a buon fine, ma non vedono il contatto inserito.
Questo è causato da un bug del tool d'installazione che non crea una tabella.
Procediamo con una query per MariaDB:

  • apriamo un terminale del server e autentichiamoci con un utente con diritti di amministrazione
  • colleghiamoci a MariaDB

sudo mariadb -u root

  • diamo la seguente query e usciamo da MariaDB

use vtiger_DB;

CREATE TABLE IF NOT EXISTS vtiger_cv2group (
cvid int(25) NOT NULL,
groupid int(25) NOT NULL,
KEY vtiger_cv2group_ibfk_1 (cvid),
KEY vtiger_groups_ibfk_1 (groupid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS vtiger_cv2role (
cvid int(25) NOT NULL,
roleid varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS vtiger_cv2rs (
cvid int(25) NOT NULL,
rsid varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS vtiger_cv2users (
cvid int(25) NOT NULL,
userid int(25) NOT NULL,
KEY vtiger_cv2users_ibfk_1 (cvid),
KEY vtiger_users_ibfk_1 (userid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

quit;

Fixing fatto.

Cron

Installiamo i cron per automatizza le operazioni in backgroud di vTiger:

  • come prima apriamo un terminale del server e autentichiamoci con un utente con diritti di amministrazione
  • lanciare l'editor di cron

sudo crontab -u www-data -e

  • inseriamo i seguenti comandi, salviamo e usciamo

#*/15 * * * * /usr/bin/sh -f /home/glenn/public_html/cron/vtigercron.sh > /home/glenn/public_html/temp/templog.txt
#*/15 * * * * wget -O- --spider "http://www.example.com/crm/vtigercron.php" >/dev/null 2>&1
*/15 * * * * /usr/bin/bash -f /var/www/example.com/html/cron/vtigercron.sh > /var/www/example.com/html/logs/vtigercron.log

Con questo cron ogni 15 minuti vengono eseguite le operazioni di backgroud come invii, aggiornamenti degli stati, ecc...

Conclusione

La documentazione pubblica di vTiger è ampia, ma la parte relativa all'installazione e ai tuning non è così esaustiva.
Questo tutorial cerca di supplire a questa carenza descrivendo passo, passo un'installazione base. Pertanto il prodotto finale in mano agli utenti sarà "full-futures".