nodejs
Come installare Node.js, Python e PHP su una VPS nuova
Una guida semplice per installare l’ambiente di esecuzione giusto su un server nuovo senza creare conflitti di versione o errori misteriosi.
Hai un server pulito e un’applicazione che richiede Node.js, Python o PHP, ma una configurazione errata può generare errori inaspettati ancora prima che il sito sia online.
Versione breve: per installare Node.js, Python o PHP su un server nuovo, aggiorna il sistema operativo, scegli una versione specifica, installa l’ambiente di esecuzione con il relativo gestore di pacchetti ed effettua un test con un’applicazione di prova prima di distribuire il progetto finale. Node.js richiede solitamente npm, Python necessita di pip e di un ambiente virtuale, mentre PHP richiede PHP-FPM abbinato a Composer per i framework moderni. La configurazione più sicura prevede versioni definite per ciascun progetto, un processo di avvio prevedibile e file di log facilmente consultabili.
Cosa stai installando davvero?
Puoi immaginare il tuo server come un’officina vuota: il sistema operativo rappresenta la struttura, mentre Node.js, Python e PHP sono i macchinari necessari all'esecuzione del codice.
Node.js esegue codice JavaScript lato server. Se il tuo progetto include il file package.json, necessita di Node.js e di npm, il gestore dei pacchetti JavaScript.
Python esegue script con estensione .py. Se il progetto contiene requirements.txt o pyproject.toml, richiede Python, pip e un ambiente virtuale. L’ambiente virtuale è uno spazio isolato che permette a ogni progetto di gestire le proprie dipendenze senza generare conflitti con altre applicazioni.
PHP elabora file .php. Per le applicazioni web, PHP opera solitamente tramite PHP-FPM, un processo worker gestito in background che riceve le richieste inviate dal web server (come ad esempio Nginx). I framework PHP moderni utilizzano inoltre Composer per la gestione delle librerie.
Quale ambiente di esecuzione dovresti installare per primo?
Installa l'ambiente di esecuzione richiesto dalla tua applicazione, verificando i file di configurazione presenti nel progetto.
| Ambiente | Installalo quando vedi | Di solito richiede | Errore comune |
|---|---|---|---|
| Node.js | package.json, Next.js, Express, Nuxt | npm o un altro gestore di pacchetti | Installare una versione di Node.js precedente a quella richiesta |
| Python | requirements.txt, Django, Flask, FastAPI | pip e un ambiente virtuale | Installare i pacchetti a livello globale invece che per singolo progetto |
| PHP | file .php, Laravel, WordPress, Symfony | PHP-FPM e Composer | Installare PHP senza configurare l'integrazione con il web server |
È possibile installare tutti e tre gli ambienti sullo stesso server, mantenendoli ben separati. Ogni progetto deve disporre di una propria cartella, requisiti di versione specifici e una procedura di avvio definita.
Se stai configurando un server nuovo, completa prima le operazioni di sicurezza fondamentali: aggiornamenti di sistema, configurazione del firewall e creazione di un utente senza privilegi di root. Per la gestione del firewall puoi consultare la nostra guida Come configurare un firewall sul server.
Come eviti che Node.js, Python e PHP si rompano più avanti?
La criticità principale non risiede nell'installazione iniziale, ma nella gestione dei progetti successivi a distanza di mesi.
Per Node.js, seleziona una versione LTS (Long-Term Support) compatibile con l'applicazione, che garantisce stabilità e supporto prolungato. Evita di sovrapporre metodi di installazione differenti sullo stesso sistema. Se riscontri messaggi di errore come node: command not found o npm: command not found, significa che Node.js non è presente nell'ambiente dell'utente corrente o che la variabile d'ambiente PATH non include il percorso dell'eseguibile.
Per Python, evita di modificare l'ambiente di sistema operativo, da cui dipendono diversi strumenti di sistema. Utilizza un ambiente virtuale dedicato per isolare i pacchetti dell'applicazione. L'errore ModuleNotFoundError indica solitamente che la libreria è stata installata globalmente ma non risulta presente nell'ambiente virtuale in uso.
Per PHP, l'installazione dei pacchetti base è solo il primo passo. Il web server deve essere configurato correttamente per inoltrare le richieste .php al processo PHP-FPM. Se questa integrazione punta a una versione errata o se il servizio PHP-FPM non è attivo, il browser restituirà un errore 502 Bad Gateway anche in presenza di codice privo di difetti.
Per qualsiasi ambiente di esecuzione, assicuratevi che i log siano facilmente accessibili per l'analisi dei problemi. Se l'applicazione si arresta improvvisamente all'avvio, la causa è quasi sempre indicata nei file di log. Per un approfondimento, consulta Come leggere i log del server quando qualcosa si rompe.
FAQ
Posso installare Node.js, Python e PHP sullo stesso server? Sì. È sufficiente isolare ciascun progetto nelle rispettive directory, evitando sovrapposizioni tra librerie e dipendenze.
Dovrei usare Docker invece? Docker semplifica la riproducibilità delle versioni, ma introduce un ulteriore livello di astrazione. Se stai prendendo confidenza con la gestione dei server, ti consigliamo di leggere Docker su VPS per principianti prima di procedere.
**Perché si verifica l'errore node: command not found dopo l'installazione?** Questo errore si verifica quando l'applicazione viene eseguita con un utente differente rispetto a quello che ha effettuato l'installazione, oppure quando il percorso del binario Node.js non è incluso nella variabile PATH di sistema.
Composer è necessario per tutti i siti PHP? No. Piattaforme come WordPress non richiedono Composer, mentre framework come Laravel e Symfony ne fanno un uso fondamentale per la gestione delle dipendenze.
La scorciatoia
Server Manager previene le problematiche tipiche della gestione degli ambienti di esecuzione: versioni di Node.js non allineate, pacchetti Python installati nell'ambiente errato, errate configurazioni di PHP-FPM o errori 502 Bad Gateway dovuti a servizi fermi.
Il vantaggio principale consiste nel mantenere la configurazione dell'infrastruttura ordinata e leggibile nel tempo. A distanza di mesi sarà sempre chiaro quale ambiente di esecuzione è assegnato a ciascun progetto, prevenendo blocchi improvvisi al servizio durante gli aggiornamenti.
Com’è fatto un risultato riuscito?
Un'infrastruttura ben configurata opera in modo lineare e prevedibile. L'ambiente di esecuzione corrisponde ai requisiti dell'applicazione, il gestore di pacchetti funziona correttamente, il progetto si avvia senza errori e i log permettono una diagnosi immediata delle anomalie.
Quando Node.js, Python o PHP sono installati in modo pulito, l'infrastruttura diventa trasparente e completamente gestibile.