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
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".