51 06/04/2026 07/04/2026 9 min

Installare phpIPAM su Ubuntu e Debian

phpIPAM è una soluzione open source per la gestione degli indirizzi IP, utile quando serve tenere sotto controllo subnet, VLAN, dispositivi, DNS e assegnazioni in modo ordinato. Su Ubuntu e Debian l’installazione è lineare, ma conviene impostarla con criterio: web server, database, PHP e permessi devono essere coerenti, altrimenti i problemi arrivano dopo, in fase di login o di scrittura nel database.

Qui trovi un’installazione classica su Linux recente con Apache o Nginx, MariaDB e PHP. La procedura è adatta a server dedicati, VM o hosting VPS con accesso root o sudo.

Requisiti da verificare prima di partire

Prima di installare, controlla di avere questi elementi:

  • Ubuntu o Debian aggiornati.
  • Accesso root o sudo.
  • Un web server: Apache oppure Nginx.
  • MariaDB o MySQL.
  • PHP con i moduli richiesti da phpIPAM.
  • Un nome host o un IP raggiungibile via browser.

Se il server è esposto in rete pubblica, conviene avere già pronto anche TLS con certificato valido. phpIPAM funziona anche in HTTP, ma in produzione è una cattiva idea lasciare credenziali e sessioni senza cifratura.

Pacchetti da installare su Ubuntu e Debian

Su Debian e Ubuntu recenti, il set tipico include Apache, MariaDB e PHP con estensioni comuni. I nomi dei pacchetti possono cambiare leggermente in base alla release, ma questa base copre la maggior parte dei casi.

sudo apt update
sudo apt install apache2 mariadb-server php php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip php-gmp php-intl php-bcmath unzip git

Se usi Nginx al posto di Apache, sostituisci il server web e aggiungi PHP-FPM:

sudo apt update
sudo apt install nginx mariadb-server php-fpm php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip php-gmp php-intl php-bcmath unzip git

Dopo l’installazione, verifica la versione di PHP e i moduli caricati:

php -v
php -m | egrep 'mysqli|pdo_mysql|gd|curl|mbstring|xml|zip|gmp|intl|bcmath'

Atteso: i moduli richiesti devono comparire nell’output. Se manca qualcosa, phpIPAM può installarsi ma poi mostrare errori in pagina o durante i test interni.

Creare il database e l’utente dedicato

phpIPAM va appoggiato a un database separato, con un utente dedicato e privilegi limitati al solo database dell’applicazione.

sudo mysql

Dentro MariaDB/MySQL crea database e utente. Esempio:

CREATE DATABASE phpipam CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'phpipam'@'localhost' IDENTIFIED BY 'PASSWORD_FORTE';
GRANT ALL PRIVILEGES ON phpipam.* TO 'phpipam'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Nota pratica: la password va scelta forte e non va salvata in chiaro in documenti condivisi. Se devi distribuire istruzioni a un team, usa un vault o un segreto gestito, non testo libero.

Scaricare phpIPAM

Il repository ufficiale è su GitHub. Il metodo più semplice è scaricare l’ultima release stabile oppure clonare il repository se vuoi seguire uno specifico branch. Per un’installazione standard, meglio una release stabile.

Verifica la release corrente sul repository ufficiale: https://github.com/phpipam/phpipam

Esempio con download di un archivio release, da adattare alla versione che vuoi installare:

cd /tmp
wget https://github.com/phpipam/phpipam/archive/refs/tags/vX.Y.Z.tar.gz
sudo mkdir -p /var/www/phpipam
sudo tar -xzf vX.Y.Z.tar.gz -C /var/www/phpipam --strip-components=1

Se preferisci git:

sudo mkdir -p /var/www/phpipam
sudo git clone https://github.com/phpipam/phpipam.git /var/www/phpipam

Con git hai più controllo sugli aggiornamenti, ma in produzione conviene fissare una release o un tag, non seguire il ramo principale a occhi chiusi.

Permessi corretti dei file

Il web server deve poter leggere i file e, in alcune fasi, scrivere nella directory di configurazione o cache. Evita di dare permessi troppo larghi a tutta la tree.

Su Apache o Nginx, l’utente del servizio è spesso www-data su Debian e Ubuntu. Imposta ownership coerente e verifica che il web server possa leggere la root dell’applicazione.

sudo chown -R www-data:www-data /var/www/phpipam
sudo find /var/www/phpipam -type d -exec chmod 755 {} \;
sudo find /var/www/phpipam -type f -exec chmod 644 {} \;

Se la tua installazione richiede una directory scrivibile specifica, limita il write solo lì. Non dare scrittura globale alla web root se non hai un motivo preciso.

Configurare Apache

Con Apache, la configurazione tipica consiste in un virtual host dedicato. Se il sito è su un dominio, usa quel nome; se è interno, puoi partire con un host basato su IP o nome DNS privato.

<VirtualHost *:80>
    ServerName ipam.example.com
    DocumentRoot /var/www/phpipam

    <Directory /var/www/phpipam>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/phpipam-error.log
    CustomLog ${APACHE_LOG_DIR}/phpipam-access.log combined
</VirtualHost>

Abilita il sito e i moduli necessari:

sudo a2enmod rewrite
sudo a2ensite phpipam.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Verifica che il test di configurazione sia OK prima del reload. Se apache2ctl configtest segnala errore, non ricaricare nulla: correggi il file e ripeti il controllo.

Configurare Nginx con PHP-FPM

Se usi Nginx, serve un server block e il collegamento a PHP-FPM. La versione del socket può cambiare in base alla release di PHP installata.

server {
    listen 80;
    server_name ipam.example.com;
    root /var/www/phpipam;
    index index.php index.html;

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

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

    location ~* /\. {
        deny all;
    }
}

Attiva la configurazione e verifica la sintassi:

sudo nginx -t
sudo systemctl reload nginx

Se il socket PHP-FPM non coincide con la tua versione, controlla con:

ls /run/php/

Atteso: un socket tipo php8.x-fpm.sock. Se non c’è, il servizio PHP-FPM non è attivo o stai puntando alla versione sbagliata.

Configurare phpIPAM via web installer

A questo punto apri nel browser l’URL del sito, ad esempio http://ipam.example.com. phpIPAM dovrebbe mostrare la procedura iniziale di setup.

Nel wizard inserisci i dati del database creato prima:

  • Database host: localhost o indirizzo del server DB.
  • Database name: phpipam.
  • Database user: phpipam.
  • Password: quella assegnata all’utente DB.

Se il wizard propone il caricamento di uno schema iniziale, conferma. Al termine dovresti arrivare alla pagina di login o alla schermata di completamento dell’installazione.

Se il setup fallisce, controlla subito i log del web server e di PHP:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log
  • PHP-FPM: /var/log/php8.x-fpm.log o journal di systemd
  • MariaDB: /var/log/mysql/error.log o journalctl -u mariadb

Configurazione iniziale dopo il login

Dopo il primo accesso, completa alcune impostazioni base prima di consegnare il sistema agli utenti:

  1. Imposta un account amministrativo dedicato, non condividere il primo account creato.
  2. Configura il timezone corretto.
  3. Verifica lingua e formato date.
  4. Definisci le subnet principali e i progetti o sezioni organizzative.
  5. Se usi autenticazione esterna, pianifica l’integrazione solo dopo aver validato l’accesso locale.

Se il server deve essere usato da più operatori, conviene definire subito policy minime di naming, tagging e deleghe. In uno strumento IPAM la disciplina iniziale evita caos dopo poche settimane.

Abilitare HTTPS

Per un uso reale, il sito va protetto con TLS. Su Ubuntu e Debian il modo più rapido è usare Let’s Encrypt con Certbot, se il dominio è pubblico e raggiungibile dall’esterno.

sudo apt install certbot python3-certbot-apache

Con Apache:

sudo certbot --apache -d ipam.example.com

Con Nginx:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d ipam.example.com

Controlla il rinnovo automatico:

sudo certbot renew --dry-run

Atteso: test completato senza errori. Se il dominio non è pubblico o il server non è raggiungibile da Internet, usa un certificato interno o un reverse proxy già terminato in TLS.

Verifiche post installazione

Dopo il setup, fai una serie di controlli minimi:

  1. Apri la home page e verifica che non ci siano errori PHP o pagine bianche.
  2. Effettua login con l’account admin e crea un oggetto di test.
  3. Verifica che il database riceva dati.
  4. Controlla i log applicativi e web server per warning ricorrenti.
  5. Ricarica la pagina in una sessione pulita o in finestra anonima per escludere cache del browser.

Se vuoi una verifica rapida lato rete e servizio:

curl -I http://ipam.example.com
curl -k -I https://ipam.example.com

Atteso: 200 o 302 verso login, non 500, 502 o timeout.

Problemi comuni e correzioni rapide

Se qualcosa non torna, i casi più frequenti sono questi:

  • Pagina bianca: spesso PHP o errori fatali. Controlla i log del web server e di PHP-FPM.
  • Errore di connessione al database: credenziali errate, servizio DB fermo, hostname sbagliato.
  • 403 Forbidden: permessi o configurazione del virtual host.
  • 404 su path interni: rewrite non attivo o regole Nginx/Apache incomplete.
  • Setup bloccato: estensioni PHP mancanti o versione PHP non compatibile.

Due controlli veloci aiutano spesso a isolare il problema:

systemctl status apache2
systemctl status nginx
systemctl status mariadb
systemctl status php8.2-fpm

e

journalctl -u apache2 -n 50 --no-pager
journalctl -u nginx -n 50 --no-pager
journalctl -u mariadb -n 50 --no-pager
journalctl -u php8.2-fpm -n 50 --no-pager

Se la distro usa una versione diversa di PHP, sostituisci 8.2 con quella effettivamente installata.

Backup e ripristino

Una volta operativo, metti subito in piedi un backup minimo di database e file applicativi. Per un IPAM il database è la parte critica: contiene subnet, assegnazioni e metadati operativi.

Backup database:

mysqldump -u root -p phpipam > phpipam.sql

Backup file:

tar -czf phpipam-files.tar.gz /var/www/phpipam

Ripristino tipico:

mysql -u root -p phpipam < phpipam.sql

Se fai modifiche di configurazione, conserva sempre una copia del file precedente. Anche un semplice vhost può essere riportato indietro in pochi minuti se hai lo snippet originale.

Conclusione operativa

Su Ubuntu e Debian phpIPAM si installa senza complicazioni se separi bene i tre livelli: web server, database e PHP. La parte più importante non è solo far comparire la pagina iniziale, ma arrivare a un’installazione pulita, con permessi corretti, TLS attivo, log leggibili e backup già pronti.

Se vuoi standardizzare l’installazione in più server, conviene trasformare questa procedura in uno script o in un playbook, ma solo dopo aver validato a mano almeno una volta il flusso completo.