Hosting e VPS per PrestaShop 9: requisiti del server
Prima di sottoscrivere un VPS o un hosting per PrestaShop conviene sapere cosa deve offrire: versione di PHP ed estensioni, database, memoria, OPcache, attività programmate, HTTPS ed email. Spieghiamo come verificarlo prima di pagare e i segnali che il tuo server non è più sufficiente.
Un hosting o un VPS per PrestaShop 8 o 9 ha bisogno di una versione di PHP supportata dalla tua versione di PrestaShop con le sue estensioni, MySQL o MariaDB, memoria sufficiente per PHP, OPcache attivato, attività programmate, HTTPS e una posta che arrivi. Non importa che si chiami condiviso, VPS o cloud: se manca uno di questi pezzi, il negozio sarà lento o darà errori.
La domanda «quale VPS prendo per PrestaShop?» di solito parte da core e giga. All'inizio è la cosa meno importante. Questo articolo passa in rassegna ciò che il server deve davvero avere, come verificarlo prima di pagare e come capire quando il tuo non è più sufficiente. La scelta tra condiviso, VPS o cloud è un'altra decisione, che trattiamo in un altro articolo del blog.
PHP: la versione e le estensioni
Ogni versione di PrestaShop funziona con un intervallo preciso di versioni di PHP, e quell'intervallo cambia da un ramo all'altro. Nel nostro ambiente usiamo PrestaShop 9.1 e 9.2 con PHP 8.3 e PrestaShop 8.2 con PHP 8.1; per qualsiasi altra combinazione, consulta i requisiti ufficiali della versione che installerai. Cosa deve permettere il server:
- Scegliere la versione di PHP, e cambiarla senza dipendere da un ticket di diversi giorni.
- Le estensioni richieste da PrestaShop, tra cui
curl,gd,intl,mbstring,openssl,pdo_mysql,zip,dom,simplexmlefileinfo. Se ne manca una, l'installazione lo segnalerà oppure, peggio, una funzione specifica fallirà mesi dopo. - Limiti regolabili:
memory_limit,max_execution_time,upload_max_filesizeepost_max_size. Le importazioni del catalogo, la rigenerazione delle miniature e gli aggiornamenti richiedono più di una pagina normale.
OPcache e altre cache
PrestaShop carica migliaia di file PHP a ogni richiesta. OPcache conserva quel codice già compilato in memoria ed è, probabilmente, il miglioramento di prestazioni più economico che esista. Deve essere attivato e con memoria sufficiente perché ci stia tutto il codice del negozio; se è troppo piccolo, si svuota di continuo e aiuta poco.
Al di sopra ci sono la cache di PrestaShop, una cache di oggetti come Redis per alleggerire il database e una cache di pagina completa per le visite senza sessione. Chiedi se il server supporta Redis o se puoi installarlo: su un VPS decidi tu, su un condiviso dipende dal fornitore.
Database
- MySQL o MariaDB in una versione supportata dal tuo PrestaShop.
- Sullo stesso server o molto vicino. Una pagina di categoria può lanciare centinaia di query; se ognuna deve viaggiare lontano, il negozio è lento anche se il server ha risorse in abbondanza.
- Memoria per il database. Le tabelle di prodotti, ordini e statistiche crescono con gli anni, e un database senza memoria legge dal disco.
- Accesso per backup e manutenzione: poter fare un dump completo quando ti serve.
Memoria e disco
Non c'è una cifra valida per tutti i negozi, perché dipende dal traffico, dal numero di prodotti e da ciò che fanno i moduli. Ci sono però dei criteri:
- Dischi veloci (SSD o NVMe). PrestaShop legge molti file piccoli, e un disco lento si nota in ogni pagina.
- Memoria garantita, non «fino a». Su un VPS, che la memoria sia tua; su un condiviso, chiedi quanta ne hai assicurata in un picco.
- Spazio per crescere: immagini, backup, log e cache occupano più di quanto sembri.
Server web e URL semplificati
PrestaShop funziona con Apache, con Nginx o con server compatibili con Apache. Con Apache, gli URL semplificati dipendono da mod_rewrite e dal fatto che il server rispetti il file .htaccess generato dal negozio; se non lo fa, schede prodotto e categorie danno errore 404 non appena attivi gli URL semplificati. Con Nginx non c'è .htaccess: le regole di riscrittura e il blocco delle cartelle che non devono essere servite si scrivono nella configurazione del server, e qualcuno deve mantenerle quando si aggiorna PrestaShop. Chiedi anche di HTTP/2 o superiore e della compressione delle risposte, che si notano in ogni pagina.
Attività programmate (cron)
Molte cose di un negozio funzionano con attività programmate: indicizzazione del motore di ricerca, invio di email in coda, sincronizzazione con ERP o marketplace, feed di prodotti, pulizia dei carrelli e backup. Il server deve permettere di creare un cron di sistema che richiami un URL o esegua un comando ogni pochi minuti. Senza questo, tutto dipende dal fatto che qualcuno visiti il negozio, e le attività vengono eseguite tardi o mai.
HTTPS ed email
HTTPS non è facoltativo: lo richiedono i gateway di pagamento, i browser e i motori di ricerca. Il certificato deve rinnovarsi da solo e coprire il dominio con e senza www.
L'email è ciò che si dimentica di più. Le conferme d'ordine, il recupero della password e gli avvisi interni devono arrivare. Verifica di poter configurare SPF, DKIM e DMARC sul tuo dominio e che il server di invio abbia una buona reputazione. Altrimenti, invia le email del negozio via SMTP tramite un servizio di email transazionali.
Come verificarlo prima di sottoscrivere
- Chiedi la scheda tecnica: versioni di PHP disponibili, estensioni, limiti, versione del database, tipo di disco e memoria garantita.
- Chiedi una prova o un periodo di recesso e carica una copia del tuo negozio su un sottodominio.
- Esegui il controllo dei requisiti incluso nell'installer di PrestaShop, oppure un file con
phpinfo()che elimini alla fine. - Misura: tempo di risposta della home page, di una categoria grande, di una scheda prodotto e del checkout, e del back office, che è dove si nota di più un server al limite.
- Prova l'email con un ordine di prova e guarda se arriva e se finisce nello spam.
- Chiedi dei backup: frequenza, per quanti giorni si conservano, dove e come si ripristinano.
Segnali che il server non basta più
- Il back office è lento anche con poco traffico.
- Errori 500, 502 o 503 nei momenti di maggiore affluenza o quando si lancia un'importazione.
- Importazioni o rigenerazioni di immagini che si interrompono a metà per tempo o per memoria.
- Non puoi aggiornare PrestaShop perché manca la versione di PHP di cui hai bisogno.
- Le email degli ordini non arrivano o finiscono nello spam.
- Le attività programmate vengono eseguite in ritardo o non vengono eseguite.
Come risolverlo in PrestaShop
Se preferisci non amministrare il server, il piano di hosting professionale di Rekire è configurato per PrestaShop fin dal primo giorno, e chi ti assiste conosce il tuo negozio, non solo il server. Per spremere al massimo quello che hai già, il modulo All In One Cache gestisce tre cache da un unico pannello: pagina completa su disco, query SQL in Redis (in PrestaShop 8 o superiore) e OPcache, e svuota da solo la cache di pagina quando modifichi prodotti, categorie o prezzi. E se hai bisogno che qualcuno controlli il server, regoli PHP o trasferisca il negozio, lo facciamo con il supporto tecnico PrestaShop a ore. Controllarlo prima di un picco di vendite costa meno che sistemarlo nel mezzo di uno.
Domande frequenti
PrestaShop funziona su un hosting condiviso?
Sì, se l'hosting offre la versione di PHP adeguata, le estensioni, limiti sufficienti e cron. Per negozi piccoli può bastare; quando crescono il catalogo o il traffico, si nota la mancanza di risorse garantite.
Quanta memoria serve a un VPS per PrestaShop?
Dipende dal traffico, dal catalogo e dai moduli. Più di una cifra, conta che la memoria sia garantita e che basti per PHP, il database e la cache contemporaneamente. Misura con il tuo negozio reale prima di decidere.
Quale versione di PHP richiede PrestaShop 9?
La 9 richiede una versione recente di PHP 8; noi la usiamo con PHP 8.3. Consulta i requisiti ufficiali della versione esatta che installerai.
Redis è necessario?
Non è indispensabile, ma aiuta nei negozi con molte query al database. OPcache, invece, dovrebbe essere sempre attivato.