Hosting Symfony
Symfony, distribuito senza downtime
Collega il tuo repository e fai push. Ogni deploy installa i pacchetti Composer in una release nuova, svuota la cache, esegue le migrazioni Doctrine e solo allora passa alla nuova versione, mentre Supervisor tiene attivi i worker di Messenger sul nuovo codice.
Dal repository alla produzione in tre passaggi
- 1
Crea un server
Su Hetzner Cloud, DigitalOcean, Vultr, Akamai, AWS o Google Cloud, oppure su qualsiasi VPS Ubuntu 24.04. Scegli PHP da 8.1 a 8.5 e MySQL, MariaDB o PostgreSQL; Redis, Node.js e Supervisor sono inclusi.
- 2
Crea un sito Symfony
Scegli il preset Symfony e il tuo repository su GitHub, GitLab o Bitbucket. Nginx serve
/publictramite PHP-FPM e il sito riceve un indirizzo gratuitoon-deploy.linkche funziona subito. - 3
Fai push
Un webhook fa il deploy di ogni push sul tuo branch. La nuova release va online solo quando Composer, la cache e le migrazioni sono andati tutti a buon fine.
Script di deploy
Lo script di deploy predefinito per Symfony
Semplice Bash che gira con set -e nella nuova release, con l'utente del sito. Le migrazioni partono solo se il progetto ha una cartella migrations. Modifica lo script dal browser per aggiungere i tuoi passaggi, come asset-map:compile o una build npm.
Usa $VIMONTO_PHP e $VIMONTO_COMPOSER al posto di php e composer, così lo script segue la versione di PHP del sito quando la cambi. $VIMONTO_BRANCH e $VIMONTO_COMMIT ti dicono cosa si sta distribuendo.
$VIMONTO_COMPOSER install --no-dev --no-interaction --prefer-dist --optimize-autoloader
$VIMONTO_PHP bin/console cache:clear --env=prod
if [ -d migrations ]; then
$VIMONTO_PHP bin/console doctrine:migrations:migrate --no-interaction --allow-no-migration --env=prod
fiPensato per come Symfony gira in produzione
Worker di Messenger
Attiva i worker di Messenger e scegli i tuoi transport, come
async scheduler_default, e da 1 a 20 processi. Supervisor eseguemessenger:consumee ogni deploy inviamessenger:stop-workers.Rollback in pochi secondi
Le cinque release più recenti restano sul server. Rollback rimette online una release precedente senza ricompilare nulla.
Un .env condiviso
Scrivi il
.envdi produzione nella pagina Ambiente. Viene salvato cifrato, collegato in ogni release e conservato con una cronologia delle ultime 50 versioni.Pacchetti privati
Le credenziali per i registry privati di Composer e npm vengono salvate cifrate e usate solo durante la build, tramite
COMPOSER_AUTHe una configurazione npm temporanea.
Ogni deploy, passo dopo passo
Segui le fasi Recupera, Build e Live mentre un deploy è in corso, con l'output di ogni passaggio. Se un passaggio fallisce, la release viene scartata e il sito online non cambia.

Domande sull'hosting Symfony
Dove imposto APP_ENV, APP_SECRET e DATABASE_URL?
Nella pagina Ambiente del sito. Il .env che salvi lì viene scritto sul server, collegato in ogni release al posto del .env del repository e sopravvive a deploy e rollback. Imposta APP_ENV=prod, così gli script di Composer girano con i bundle di produzione.
Quali versioni di PHP posso usare?
Da PHP 8.1 a 8.5. Installa più versioni affiancate sullo stesso server e scegline una per sito; lo script di deploy la segue tramite $VIMONTO_PHP.
Posso usare Symfony Scheduler?
Sì. Aggiungi il suo transport ai worker di Messenger, per esempio async scheduler_default. Per un semplice comando cron, aggiungi invece un'attività pianificata sul server.
Funziona con API Platform o con un monorepo?
Sì. Qualsiasi app Symfony con un public/index.php funziona. In un monorepo, imposta la Directory root del sito sulla cartella dell'app, come /api.
Quanto costa?
Il piano gratuito comprende 1 server e 3 siti con tutte le funzionalità. Premium costa 15 € al mese per organizzazione, senza limiti. I tuoi server li fattura il tuo provider cloud.
Pagine correlate
- DeploymentRelease senza downtime, push to deploy, URL di deploy per la CI e rollback con un clic.
- PHPApp PHP pure con più versioni di PHP affiancate e impostazioni PHP-FPM regolabili.
- LaravelDeploy Laravel senza downtime, con Horizon, Reverb, Pulse, code e scheduler a portata di interruttore.
- Hetzner CloudServer in Germania, Finlandia, Stati Uniti e Singapore, con DNS e backup su Object Storage.
Il tuo prossimo deploy potrebbe essere online prima che finisca il caffè.
Crea un’organizzazione, collega un server e fai push. Tutto qui.