Guida alle tecnologie

Installare osTicket su Ubuntu 16.04 con Nginx, PHP-FPM 7 e MySQL 5.7

6 min read Guide. Aggiornato 08 Oct 2025
Installare osTicket su Ubuntu 16.04 con Nginx e PHP-FPM
Installare osTicket su Ubuntu 16.04 con Nginx e PHP-FPM

Questo tutorial guida passo passo all’installazione e alla configurazione di osTicket su Ubuntu 16.04 usando Nginx, PHP-FPM 7 e MySQL 5.7. Include la creazione del database, la configurazione di PHP-FPM, la creazione di un virtual host Nginx, il download di osTicket, e le operazioni post-installazione. Segui ogni comando come utente con privilegi di root o con sudo.

Important: versione di esempio del pacchetto osTicket usata: v1.10. Adatta i percorsi e i nomi di dominio al tuo ambiente di produzione.

Per chi è questo tutorial

  • Amministratori di sistema che vogliono distribuire un helpdesk open source leggero.
  • Team che preferiscono Nginx + PHP-FPM anziché Apache.

Definizione rapida: osTicket è un sistema open source per la gestione dei ticket di supporto, scritto in PHP.

Sommario dei passaggi

  1. Installare Nginx e MySQL
  2. Installare e configurare PHP-FPM 7 e le estensioni richieste
  3. Creare il database MySQL per osTicket
  4. Creare il virtual host Nginx per osTicket
  5. Scaricare e preparare i file di osTicket
  6. Eseguire l’installazione via web e mettere in sicurezza la configurazione
  7. Testare e operare

Requisiti

  • Ubuntu 16.04 con accesso root o sudo
  • Connessione internet dal server per scaricare i pacchetti
  • Un dominio o un record DNS per il server (opzionale ma consigliato)

Nota: mantenere aggiornati backup del server e del database prima di test in produzione.

Passo 1 - Installare Nginx e MySQL

Accedi al server via SSH:

ssh [email protected]

Aggiorna i repository:

sudo apt-get update

Installa Nginx e MySQL server:

sudo apt-get install -y nginx mysql-server

Durante l’installazione verrai invitato a impostare la password root di MySQL: scegli una password sicura.

Prompt per impostare la password root di MySQL su Ubuntu

Avvia e abilita i servizi:

systemctl restart nginx
systemctl restart mysql
systemctl enable nginx
systemctl enable mysql

Verifica le porte in ascolto (porta 80 per Nginx e 3306 per MySQL):

netstat -plntu

Verifica che Nginx e MySQL siano in esecuzione con le porte corrette

Passo 2 - Installare e configurare PHP-FPM 7

osTicket richiede diverse estensioni PHP come gd, imap, xml, mbstring, intl e altre. Installa PHP 7 e le estensioni richieste:

sudo apt-get install -y php7.0-cli php7.0-mysql php7.0-cgi php7.0-fpm php7.0-gd php7.0-imap php7.0-xml php7.0-mbstring php7.0-intl php-apcu

Modifica il file php.ini per PHP-FPM:

cd /etc/php/7.0/
vim fpm/php.ini

Trova la direttiva cgi.fix_pathinfo e impostala a 0 (decommenta se necessario):

cgi.fix_pathinfo=0

Riavvia e abilita il servizio php7.0-fpm:

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

Configura il virtual host Nginx per interpretare correttamente i file PHP. Modifica il file di default:

cd /etc/nginx/sites-available/
vim default

All’interno del blocco server assicurati che la sezione PHP punti al socket di PHP-FPM:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

Salva, chiudi e riavvia Nginx:

systemctl restart nginx

Test rapido creando un file phpinfo:

cd /var/www/html/
echo '' > info.php

Poi apri nel browser: http://TUO_IP/info.php

Informazioni phpinfo per verificare la configurazione PHP

Important: Rimuovi il file info.php dopo i test per motivi di sicurezza.

Passo 3 - Creare il database per osTicket

Accedi alla shell MySQL con l’utente root:

mysql -u root -p
TYPE YOUR PASSWORD

Crea il database e l’utente dedicato (adatta nome e password a produzione):

create database osticket_db;
create user osticket@localhost identified by 'osticketpw@';
grant all privileges on osticket_db.* to osticket@localhost identified by 'osticketpw@';
flush privileges;

Verifica che l’utente e il database siano stati creati correttamente.

Creazione del database e dell'utente MySQL per osTicket

Passo 4 - Creare il virtual host Nginx per osTicket

Crea un nuovo file di configurazione per osTicket:

cd /etc/nginx/sites-available/
vim osticket

Incolla la configurazione seguente adattando server_name e root al tuo dominio e percorso:

server {
  listen 80;
  server_name osticket.hakase-labs.com;

  root   /var/www/osticket/upload;

  access_log  /var/log/nginx/access.log;
  error_log  /var/log/nginx/error.log;

  index index.php;
  client_max_body_size 2000M;
  client_body_buffer_size 100M;
  client_header_buffer_size 10M;
  large_client_header_buffers 2 10M;

  client_body_timeout 12;
  client_header_timeout 12;
  keepalive_timeout 15;
  send_timeout 10;

  gzip             on;
  gzip_comp_level  2;
  gzip_min_length  1000;
  gzip_proxied     expired no-cache no-store private auth;
  gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

  set $path_info "";

  location ~ /include {
      deny all;
      return 403;
  }

  if ($request_uri ~ "^/api(/[^\?]+)") {
      set $path_info $1;
  }

  location ~ ^/api/(?:tickets|tasks).*${""} {
      try_files $uri $uri/ /api/http.php?$query_string;
  }

  if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
      set $path_info $1;
  }

  location ~ ^/scp/ajax.php/.*$ {
      try_files $uri $uri/ /scp/ajax.php?$query_string;
  }

  location / {
      try_files $uri $uri/ index.php;
  }

  location ~ \.php$ {
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      include        fastcgi_params;
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      fastcgi_param  PATH_INFO    $path_info;
  }
}

Nota: nel blocco precedente è importante mantenere i controlli su /include per proteggere file sensibili.

Attiva il sito e testa la configurazione Nginx:

ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

Passo 5 - Scaricare e preparare osTicket

Crea la directory e scarica l’archivio osTicket (nell’esempio v1.10):

mkdir -p /var/www/osticket/
cd /var/www/osticket/
wget http://osticket.com/sites/default/files/download/osTicket-v1.10.zip
unzip osTicket-v1.10.zip

I file web si trovano nella cartella ‘upload’. Copia il file di esempio di configurazione:

cd upload/
cp include/ost-sampleconfig.php include/ost-config.php

Imposta il proprietario corretto (www-data quando si usa Nginx su Ubuntu):

cd /var/www/osticket/
chown -R www-data:www-data upload/

Passo 6 - Installare osTicket via web

Apri il browser e vai al dominio configurato, ad esempio:

http://osticket.hakase-labs.com

Verifica che tutte le dipendenze richieste siano verdi nella pagina di verifica.

Controllo delle dipendenze richieste per osTicket

Se qualche dipendenza manca vedrai avvisi in rosso.

Esempio di dipendenze mancanti in osTicket

Clicca su ‘Continue’ per procedere con la configurazione. Compila la sezione ‘System Settings’ (nome helpdesk e email predefinita) e la sezione ‘Admin User’ (crea l’account amministratore). Assicurati che l’email admin sia diversa dall’email del helpdesk.

Pagina di configurazione iniziale di osTicket

Nella pagina delle impostazioni del database inserisci i dettagli creati al Passo 3.

Dettagli del database per osTicket durante l'installazione

Clicca su ‘Install Now’ e attendi il completamento.

Installazione completata di osTicket

Al termine, rimuovi o rinomina la directory di setup e applica permessi più restrittivi al file di configurazione:

cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php

A questo punto l’installazione è completata.

Passo 7 - Test e verifica funzionale

Pagine principali di esempio:

Pagina iniziale di osTicket

Schermata di login admin di osTicket

Pannello agent di osTicket

Impostazioni amministrative di osTicket

Controllo post-installazione e best practices

  • Rimuovi info.php di test e la directory di installazione.
  • Verifica che i permessi dei file non permettano scrittura da utenti non autorizzati.
  • Usa HTTPS in produzione: configura un certificato TLS (Let’s Encrypt o commerciale) e reindirizza HTTP verso HTTPS.
  • Abilita firewall minimal (ufw) e consenti solo le porte necessarie (80/443 e SSH).
  • Esegui backup regolari del database e dei file upload.

Sicurezza e hardening

  • Imposta SELinux/AppArmor se supportato dal sistema per limitare i processi web.
  • Disabilita o limita l’uso di account MySQL con privilegi elevati per l’applicazione.
  • Non esporre directory sensibili; il blocco Nginx su /include è essenziale.
  • Mantieni PHP e le estensioni aggiornate e applica patch di sicurezza.

Troubleshooting comune

  • Errore 502 Bad Gateway: controlla che php7.0-fpm sia in esecuzione e che il socket configurato esista (/run/php/php7.0-fpm.sock).
  • Errori di permessi: assicurati che www-data sia proprietario dei file web e che i permessi siano appropriati.
  • Connessione al DB fallita: verifica host, nome utente, password, e che MySQL ascolti su localhost.
  • Dipendenze PHP mancanti: installa le estensioni indicate e riavvia PHP-FPM.

Checklist di deployment (ruoli e responsabilità)

  • Sysadmin
    • Verificare prerequisiti sistema e backup
    • Configurare Nginx, PHP-FPM e MySQL
    • Applicare TLS e hardening
  • DBA
    • Creare database e user con privilegi minimi
    • Pianificare backup e procedure di restore
  • Admin applicazione
    • Completare la configurazione di osTicket via web
    • Creare account agent e regole di ticketing

Procedura di aggiornamento minima (mini-methodology)

  1. Eseguire un backup completo di DB e directory upload
  2. Testare l’aggiornamento in ambiente di staging
  3. Mettere l’istanza in manutenzione
  4. Applicare l’aggiornamento seguendo la documentazione ufficiale
  5. Verificare funzionalità e log dopo l’aggiornamento

Quando questa procedura potrebbe non funzionare

  • Distribuzioni diverse da Ubuntu 16.04 possono richiedere nomi dei pacchetti differenti (es. php7.2, php7.4).
  • Ambienti che usano Apache o mod_php richiedono configurazioni differenti.
  • Configurazioni aziendali con LDAP/AD richiedono ulteriori estensioni e verifiche.

Note su compatibilità e migrazione

  • Se si migra da versione precedente di osTicket, leggere prima le note di rilascio specifiche per la versione.
  • Verificare le compatibilità delle estensioni PHP con la versione di osTicket.

Risorse utili

Riepilogo

  • Hai installato Nginx, MySQL e PHP-FPM, creato database e virtual host, scaricato e installato osTicket.
  • Applica HTTPS e permessi restrittivi prima di mettere in produzione.

Note finali: questa guida si concentra su un’installazione base e sicura per ambienti di piccole/medie dimensioni. Per deployment enterprise considera alta disponibilità, bilanciamento del carico e monitoraggio continuo.

Autore
Redazione

Materiali simili

Correggere Dev Error 6068 in Warzone
Risoluzione problemi

Correggere Dev Error 6068 in Warzone

Verificare versione PowerShell in Windows
Windows

Verificare versione PowerShell in Windows

Installare estensioni su Edge manualmente
Guide Browser

Installare estensioni su Edge manualmente

Installare osTicket su Ubuntu 16.04 con Nginx e PHP-FPM
Guide.

Installare osTicket su Ubuntu 16.04 con Nginx e PHP-FPM

Installare MySQL 5.7 su CentOS 7 e Ubuntu 16.04
Database

Installare MySQL 5.7 su CentOS 7 e Ubuntu 16.04

Guida completa ad Adobe Camera Raw
Fotografia

Guida completa ad Adobe Camera Raw