Installazione e configurazione

Il presente documeto descrive i passi necessari all’installazione e alla configurazione dell’applicazione Futura per la creazione e gestione del PEI e del PDP.

Prerequisiti

Futura è una soluzione WEB costruita su stack LAMP (Linux Apache MySQL PHP). I componenti fondamentali del sistema e le versioni di riferimento sono le seguenti:

  • Linux: selezionare la propria distribuzione di riferimento;

  • Apache: predisporre il web server Apache (o in alternativa NGINX) configurando il virtual host per la gestione dell’applicazione;

  • PHP: la versione di riferimento di PHP è la 8.1.x;

  • MySQL: installare e configurare il server MySQL, versione di riferimento: 5.7.22;

  • Server SMTP: L’applicazione invia numerose notifiche via email, sarà quindi necessario attivare un server SMTP;

  • Molte sezioni dell’applicazione prevedono l’archiviazione di file. I file vengono archiviati in una folder del server. Quindi lo spazio disco del server dovrà essere dimensionato in modo opportuno;

  • Certificato SSL per consentire l’accesso tramite protocollo cifrato HTTPS;

L’architettura del sistema e le risorse dovranno essere dimensionate in modo proporzionale al carico previsto.

Installazione

Per eseguire l’installazione del sistema sarà necessario compiere le seguenti operazioni:

Creazione del database

Creare un nuovo schema e un nuovo utente con permessi di lettura e scrittura sullo schema creato. Eseguire l’import dello schema fornito con la soluzione:

mysql -u [utente amministrativo] -p [schema] < dump.sql

Al termine dell’operazione si avrà il database contenente la struttura e i dati essenziali per il funzionamento.

Installazione del’applicazione

Dopo aver creato il virtual host e assegnato i privilegi adeguati alle cartelle procedere inserendo i sorgenti nella cartella del virtual host (solitamente public_html). Eseguire l’installazione delle librerie aggiuntive utilizzando composer:

composer install

Configurazione applicativa

I principali parametri di configurazione vengono gestiti dal file Env.php posto nella cartella env. Copiare Env.php.default in Env.php:

cp Env.php.default Env.php

I parametri di configurazione contenuti nel file Env.php definiscono il comportamento dell’applicazione. Di seguito si riepilogano gli elementi fondamentali:

Constants::$devMode = false;

Definisce se l’applicazione è in esecuzione in modalità sviluppatore. Se attivata si disabilita il sistema di login.

Constants::$db_user_name = “”; Constants::$db_password = “”; Constants::$db_host = “”; Constants::$db_schema = “”;

Dati di configurazione della connessione al database principale dell’applicazione.

Constants::$db_user_name_alfa = “”; Constants::$db_password_alfa = “”; Constants::$db_host_alfa = “”; Constants::$db_schema_alfa = “”;

L’applicazione consente l’accesso ai dati storici dell’applicazione «alfa». Qui vanno configurati i parametri di accesso al db.

Constants::$db_user_name_esis = “”; Constants::$db_password_esis = “”; Constants::$db_host_esis = “”; Constants::$db_schema_esis = “”;

Futura consente l’accesso ai dati storici dell’applicazione «esis». Questi i parametri di configurazione per l’accesso al db.

Constants::$encrypt_key = «»; Constants::$encript_iv = «»;

Chiave dell’algoritmo di cifratura e vettore di inizializzazione. I dati dell’applicazione verranno comunicati al database già in forma cifrata. La modifica di questi parametri o la perdita della chiave renderà inrecuperabili tutte le informazioni archiviate.

Constants::$APP_PROTOCOL = «https://»;

Protocollo di comunicazione tra client e server.

Constants::$APP_URL = «»;

Url dell’applicazione.

Constants::$APP_PRINT_NAME = «Futura»;

Nome dell’applicazione visualizzato nelle pagine e nelle mail.

Constants::$app_name = «»;

Permette di configurare un path relativo per l’applicazione. Nel caso la soluzione non fosse installata come virtual host indipendente ma fosse raggiungibile in un particolare path.

Constants::$ATTACHMENTS_DIR = «»;

Percorso di archiviazione dei files allegati. Predisporre tale folder con i permessi adeguati di lettura e scrittura da parte dell’utente che esegue l’applicazione.

Constants::$SMTP_FROM_NAME = «»; Constants::$SMTP_FROM_MAIL = «»; Constants::$SMTP_HOST = «»; Constants::$SMTP_PORT = 587; Constants::$SMTP_MODE = “tls”; Constants::$SMTP_USERNAME = «»; Constants::$SMTP_PASSWORD = «»;

Dati del server SMTP per consentire l’invio delle mail di notifica.

Constants::$maxSeenTimeDelay = 120; Constants::$onlineInterval = 60;

Periodicità di controllo dello stato di utetnte online per il monitoraggio degli accessi.

Constants::$defaultActionMethod = «_default»;

Parametro di configurazione relativo all’esecuzione delle classi di View del framework.

Constants::$useVueDevServer = false;

Consente di attivare l’utilizzo diretto del server di sviluppo di VueJS. Da disattivare in produzione.

Office 365

Office365Constants::$CLIENT_ID = “”; Office365Constants::$CLIENT_SECRET = “”; Office365Constants::$REDIRECT_URI = “”; Office365Constants::$AUTHORITY_URL = “”; Office365Constants::$AUTHORIZE_ENDPOINT = “”; Office365Constants::$TOKEN_ENDPOINT = “”; Office365Constants::$RESOURCE_ID = “”; Office365Constants::$SCOPES= “”;

Parametri di configurazione per l’integrazione del login tramite Office365.

Recaptcha

Per garantire un miglior controllo delle form accessibili è stato introdotto il meccanismo di controllo recaptcha. Per utilizzare questa integrazione è necessario configurare gli appositi parametri:

RecaptchaConstants::$CLIENT_SECRET = “”; RecaptchaConstants::$SERVER_SECRET = “”;

I task schedulati

L’applicazione fa uso di una serie di task schedulati per gestire delle code di attività. Tali task vengono attivati inserendo la seguente istruzione n crontab:

          • user php [app_folder]/Scheduler.php