Skip to content

Pubblicazione area riservata core

Verificare che il Framework .net core 6.0 sia installato

Da terminale lanciare il comando

dotnet --list-runtimes

Nell'output dovrebbe comparire il testo

Microsoft.AspNetCore.App 6.0.*

dove * è una delle sottoversioni del framework (il numero è ininfluente).

Se si riceve un errore "dotnet non è stato riconosciuto come un comando" o se la versione 6 del runtime non è stata trovata passare alla sezione "Installazione del runtime di .net (WINDOWS/LINUX)"

Installazione del runtime di .net (WINDOWS)

Andare all'indirizzo https://dotnet.microsoft.com/en-us/download/dotnet/6.0 e scaricare la versione di RUNTIME per il proprio sistema operativo (sotto windows si consiglia di installare la hosting bundle)

Installazione o aggiornamento sotto IIS

Estrarre i files presenti nello zip scaricato da devel3 nella cartella "\VBG\ar-core". E' necessario arrestare IIS ma potrebbe bastare anche solo arrestare il pool di applicazioni che serve l'application ar-core.

SOLO se si sta effettuando la prima installazione su questa macchina

  • Creare una cartella (ad esempio sotto \VBG\ar-core) e configurarla come applicazione sotto IIS.
  • Sarebbe preferibile utilizzare un pool di connessioni specifico (ar-core) che deve girare a 64 bit e utilizzare la modalità integrata. Se non è stato modificato si può copiare dal DefaultAppPool
  • Portare phantomjs nella macchina
  • Scaricare il file phantomjs.bundle.zip da http://devel3.init.gruppoinit.it/download/phantomjs
  • Creare una cartella "phantomjs" sotto "ar-core"
  • Estrarre i contenuti del file "phantomjs.bundle.zip" nella cartella creata nel passaggio precedente
  • Rinominare il file "web.config_" in "web.config"
  • Rinominare il file "appsettings.dev.json" in "appsettings.prod.json"
  • (SOLO SU INSTALLZIONE FVG) Rinominare il file "managed-data-mappings.nocopy.xml" che si trova nella cartella "ar-core/moduli-fvg/compilazione" in "managed-data-mappings.xml"
  • Aprire il file "appsettings.prod.json" e verificare che gli url e le credenziali contenute siano corrette
  • Configurare il path in cui è stato estratto l'eseguibile di phantomjs nella sezione "Settings"->"phantomjsPath" (il path può essere relativo o assoluto) probabilmente sarà ./phantomjs (gli slash sono al rovescio come su linux)
  • A questo punto l'installazione dovrebbe essere completata

Prima installazione sotto Linux (Ubuntu)

Installazione del runtime di .net (LINUX)

Prima di installare .NET, eseguire i comandi seguenti per aggiungere la chiave di firma del pacchetto Microsoft all'elenco di chiavi attendibili

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoftprod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Inoltre, per utilizzare HTTPS copiare la seguente riga

sudo apt-get install apt-transport-https

In seguito installare l’SDK attraverso il seguente comando

sudo apt-get update && sudo apt-get install -y dotnet-sdk-6.0

A questo punto potrebbe risultare utile aggiornare i pacchetti installati con il comando:

sudo apt-get update

Infine per verificare che .NET sia correttamente installato, copiare la seguente riga

dotnet --version

(Opzionale) Installare e configurare NGINX

Il prossimo step è quello di installare il proxy server Nginx e avviarlo come segue:

sudo apt-get install nginx
sudo service nginx start

A questo punto bisogna configurare il Proxy modificando il file default.txt nella cartella sites-available, quindi la prima cosa da fare è spostarsi nella directory con il seguente comando:

cd /etc/nginx/sites-available/

In seguito aprire il file default.txt e modificare la sezione “location” come mostrato di seguito:

location / {
    proxy_pass http://localhost:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
}

Installazione dell'applicazione .net

  • Installare i prerequisiti
  • scaricare Phantomjs da https://phantomjs.org/download.html (seguire le indicazioni per Linux 64bit)
  • installare il pacchetto "fontconfig" sudo apt-get install fontconfig
  • installare "libgs-dev" sudo apt-get install libgs-dev
  • Creare (se non è già stata creata) la cartella /var/www/dotnet/ar-core
  • Copiare all'interno i files contenuti nello zip di distribuzione.
  • Rinominare il file "appsettings.dev.json" in "appsettings.prod.json"
  • Aprire il file "appsettings.prod.json" e verificare che gli url e le credenziali contenute siano corrette
  • (SOLO SU INSTALLZIONE FVG) Rinominare il file "managed-data-mappings.nocopy.xml" che si trova nella cartella "ar-core/moduli-fvg/compilazione" in "managed-data-mappings.xml"
  • A questo punto l'insstallazione dovrebbe essere completata

Configurazione di Kestrel come servizio

creare il file ar-core.service nella cartella /etc/systemd/system/

Copiare all'interno (verificando che i path siano corretti):

[Unit]
Description=Area riservata core
[Service]
WorkingDirectory=/var/www/dotnet/ar-core
ExecStart=dotnet /var/www/dotnet/ar-core/AreaRiservataCore.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=ar-core
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target

Se il comando dotnet non dovesse essere trovato va impostato il path completo riportandoci l'output del comando

which dotnet

(normalmente è /usr/bin/dotnet)

Una volta terminate le modifiche, il passaggio successivo è quello di abilitare e avviare il servizio con i seguenti comandi:

sudo systemctl enable ar-core.service
sudo systemctl start ar-core.service

A questo punto è possibile visualizzare lo stato del servizio come segue:

sudo systemctl status ar-core.service

A questo punto il servizio è correttamente configurato e l’applicazione verrà lanciata in maniera automatica senza la necessità di avviarla manualmente.