Guida alle tecnologie

Installare Redmine su Ubuntu 18.04 con Apache e MariaDB

7 min read DevOps Aggiornato 27 Sep 2025
Installare Redmine su Ubuntu 18.04 — Guida completa
Installare Redmine su Ubuntu 18.04 — Guida completa

Schermata introduttiva di Redmine

Redmine è un’applicazione web gratuita, open source e multiprogetto per la gestione dei progetti, il tracciamento del tempo, wiki e gestione documentale. È cross-platform e basata su Ruby on Rails. Supporta più progetti, controllo di versione (Git, SVN, CVS), controllo degli accessi basato sui ruoli e notifiche via e-mail.

Intento primario e varianti correlate

Intento principale: installare e configurare Redmine su Ubuntu 18.04. Varianti correlate: installazione Redmine con Apache, configurare MariaDB per Redmine, alternative Docker per Redmine, sicurezza Redmine, migrazione Redmine.

Requisiti

  • Un server Ubuntu 18.04 installato.
  • Un utente non-root con privilegi sudo.
  • Accesso a Internet per scaricare pacchetti e gemme.

Panoramica dei componenti

  • Sistema operativo: Ubuntu 18.04.
  • Web server: Apache con Passenger.
  • Database: MariaDB (compatibile con MySQL).
  • Applicazione: Redmine (pacchetto disponibile nei repository di Ubuntu 18.04).

Importante: questa guida usa i pacchetti di repository standard di Ubuntu 18.04. Per versioni più recenti o esigenze di produzione si può valutare l’installazione da sorgente o l’uso di container.

1. Installare Apache e MariaDB

Redmine richiede un web server e un database. Installa Apache, MariaDB e Passenger con:

sudo apt-get install apache2 mariadb-server libapache2-mod-passenger -y

Avvia e abilita i servizi:

sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb

Verifica lo stato di Apache:

sudo systemctl status apache2

2. Configurare MariaDB (sicurezza e database)

Per prima cosa esegui lo script di hardening di MariaDB:

sudo mysql_secure_installation

Rispondi alle domande come nell’esempio seguente (la procedura rimuove utenti anonimi e database di test):

Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Crea (opzionale) un database e un utente dedicato per Redmine se preferisci non usare lo schema gestito dal pacchetto:

sudo mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password_sicura';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Sostituisci password_sicura con una password robusta.

3. Installare Redmine dal repository di Ubuntu

Il pacchetto redmine è disponibile nei repository di Ubuntu 18.04. Installa Redmine e il pacchetto mysql helper:

sudo apt-get install redmine redmine-mysql -y

Durante l’installazione il setup ti chiederà di configurare Redmine. Seleziona “Yes” quando richiesto e scegli mysql come database. Fornisci la password che vuoi usare per registrare Redmine nel database.

Finestra di configurazione pacchetto Redmine durante l'installazione

Selezione del database MySQL per Redmine

Inserimento della password MySQL per l'account Redmine

Dopo l’installazione, installa Bundler per le gemme Ruby:

sudo gem install bundler

Crea il link simbolico verso la directory pubblica di Redmine nell’albero web di Apache:

sudo ln -s /usr/share/redmine/public /var/www/html/redmine

Crea il file di lock delle gemme e correggi i permessi:

sudo touch /usr/share/redmine/Gemfile.lock
sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock
sudo chown -R www-data:www-data /var/www/html/redmine

4. Configurare Apache per Redmine (Passenger)

Apri il file passenger.conf:

sudo nano /etc/apache2/mods-available/passenger.conf

Modifica o assicurati che contenga queste linee:


  PassengerDefaultUser www-data
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby

Crea il file del virtual host per Redmine:

sudo nano /etc/apache2/sites-available/redmine.conf

Copia questo contenuto e sostituisci example.com con il tuo dominio:


     ServerAdmin [email protected]
     DocumentRoot /var/www/html/redmine
     ServerName example.com
     ServerAlias www.example.com

     
         RailsBaseURI /redmine
         PassengerResolveSymlinksInDocumentRoot on
     

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

Abilita il sito e il modulo rewrite:

sudo a2ensite redmine
sudo a2enmod rewrite
sudo systemctl restart apache2

Controlla che Apache sia attivo:

sudo systemctl status apache2

5. Accedere all’interfaccia web di Redmine

Apri il browser e vai all’URL del tuo dominio (es. http://example.com). Dovresti vedere la pagina iniziale di Redmine:

Pagina iniziale di Redmine dopo l'installazione

Clicca su “Sign In” per accedere:

Pagina di accesso a Redmine

Credenziali predefinite:

  • Username: admin
  • Password: admin

Alla prima connessione cambia immediatamente la password dell’amministratore:

Schermata per modificare la password dell'amministratore

Dopo il login vedrai la dashboard principale:

Dashboard principale di Redmine

Congratulazioni: Redmine è installato e funzionante.

Controlli di post-installazione

  • Verifica che /var/www/html/redmine sia di proprietà www-data.
  • Controlla i log di Apache in /var/log/apache2/error.log.
  • Verifica con sudo systemctl status apache2 e sudo systemctl status mariadb.
  • Assicurati di cambiare la password admin e creare account con ruoli appropriati.

Checklist rapida (playbook di deployment)

  • Aggiornare il server: sudo apt-get update && sudo apt-get upgrade
  • Installare Apache, MariaDB, Passenger
  • Proteggere MariaDB (mysql_secure_installation)
  • Installare Redmine e Bundler
  • Creare link simbolico e impostare permessi
  • Configurare virtual host Apache
  • Riavviare Apache e testare l’accesso web
  • Cambiare password admin e creare utenti/ruoli
  • Configurare backup regolari del DB e della directory files

Criteri di verifica (Критерии приёмки)

  • Redmine risponde via HTTP all’indirizzo configurato.
  • Login con admin funziona e la password è stata cambiata.
  • L’applicazione può connettersi al database (nessun errore di connessione nei log).
  • I permessi dei file consentono a Apache/Passenger di leggere e scrivere dove necessario.

Casi di test e criteri di accettazione

  1. Accesso base: visitare /, visualizzare la home di Redmine.
  2. Login: autenticarsi con admin e cambiare la password.
  3. Creare progetto: creare un nuovo progetto e verificare che si salvi.
  4. Gestire file: caricare un documento nel progetto.
  5. Notifiche: impostare un account utente con email valida e verificare l’invio di notifica (richiede SMTP configurato).

Risoluzione dei problemi comuni

  • Errore PassengerDefaultRuby: verifica che /usr/bin/ruby esista e sia corretto.
  • 500 Internal Server Error: controlla /var/log/apache2/error.log e i permessi dei file.
  • Connessione DB negata: verifica user/password e che il database sia accessibile su localhost.
  • Pagina bianca: controlla Gemfile.lock e che bundler sia installato.

Alternative e approcci diversi

  1. Installazione via Docker (rapida, isolata)

    • Vantaggi: isolamento, facilità di upgrade e rollback.
    • Svantaggi: gestione dei volumi, networking e backup richiedono attenzione.
    • Esempio: usare immagini ufficiali/community per Redmine con docker-compose.
  2. Installazione da sorgente (più controllo)

    • Vantaggi: versione più aggiornata, personalizzazioni di gem.
    • Svantaggi: più lavoro, gestione delle dipendenze Ruby e delle migrazioni.
  3. Uso di Nginx invece di Apache

    • Nginx + Passenger è una combinazione comune e performante per produzioni ad alto carico.

Maturità e quando evitare questa procedura

  • Questa procedura è adatta a server dedicati o VM con carico da basso a medio.
  • Per ambienti di produzione con molti utenti considerare bilanciamento, HTTPS obbligatorio, backup e monitoraggio.
  • Per test rapidi o sviluppo locale valutare Docker invece dell’installazione su host.

Security hardening essenziale

  • Abilitare HTTPS (Let’s Encrypt) e forzare redirect HTTP→HTTPS.
  • Disabilitare l’accesso root remoto per MariaDB (mysql_secure_installation lo propone).
  • Limitare l’accesso SSH e usare chiavi pubbliche.
  • Impostare firewall (ufw) consentendo solo le porte necessarie (80, 443, SSH).
  • Installare fail2ban per proteggere da tentativi di login.
  • Eseguire backup criptati regolari del DB e della directory files di Redmine.

Privacy e note GDPR (se gestisci dati personali)

  • Documentare dove risiedono i dati degli utenti.
  • Garantire accesso controllato ai dati e log di accesso.
  • Conservare i backup in modo sicuro e prevedere procedure di cancellazione su richiesta.

Backup e rollback rapido

  • Backup DB: mysqldump –single-transaction -u root -p redmine > redmine-backup.sql
  • Backup file: tar -czf redmine-files-$(date +%F).tar.gz /var/www/html/redmine/files
  • Rollback: ripristinare DB e sovrascrivere la directory files, disabilitare site e ripristinare configurazioni precedenti.

Mini-metodologia di deployment

  1. Preparazione: aggiornamento OS, utenti e permessi.
  2. Installazione: Apache, MariaDB, Redmine.
  3. Configurazione: virtual host, SSL, SMTP.
  4. Verifica: test funzionali e accesso.
  5. Hardening: firewall, fail2ban, backup.
  6. Monitoraggio: log, Uptime, alert.

Checklists per ruoli

  • Sysadmin:

    • Configura server, sicurezza, backup e monitoraggio.
    • Mantieni aggiornamenti e SSL.
  • Sviluppatore / Maintainer:

    • Gestisci plugin/gem, migrazioni e personalizzazioni.
    • Testa in staging prima di deploy in produzione.
  • Project Manager / Utente:

    • Crea progetti, definisci ruoli, verifica permessi utente.
    • Configura notifiche e flussi di lavoro.

Suggerimenti di compatibilità e migrazione

  • Se porti dati da una versione precedente, esegui migrazioni su una copia del DB prima di applicarle in produzione.
  • Verifica compatibilità delle gemme e dei plugin con la versione di Redmine installata.

Riepilogo

Questa guida mostra come installare Redmine su Ubuntu 18.04 con Apache e MariaDB, come completare la configurazione iniziale, i controlli post-installazione e le raccomandazioni di sicurezza. Per ambienti di produzione valuta HTTPS, backup regolari, monitoraggio e alternative come Docker o installazione da sorgente.

Autore
Redazione

Materiali simili

RSS da thread di forum con Blogger e email
Guide tecniche

RSS da thread di forum con Blogger e email

Installare OCS Inventory NG 2 su CentOS 5.5
Inventario IT

Installare OCS Inventory NG 2 su CentOS 5.5

Funzione CHAR in Google Sheets: guida pratica
Guide.

Funzione CHAR in Google Sheets: guida pratica

Migliorare la qualità foto su iPhone
Fotografia

Migliorare la qualità foto su iPhone

Protezione da SQL Injection nei database
Sicurezza

Protezione da SQL Injection nei database

PHP-FastCGI: test e php.ini per sito
DevOps

PHP-FastCGI: test e php.ini per sito