WordPress
La sezione WordPress raccoglie tutto quello che serve a un sito WordPress veloce e sicuro: installazione in un clic, tre livelli di cache, aggiornamenti sicuri con ritorno automatico, protezioni, copia di prova e strumenti. La trovi nel menu per amministratori, rivenditori e utenti; ogni sito ha anche la scheda WordPress nella sua pagina. Ognuno vede solo i propri siti.
La prima volta un amministratore deve premere Prepara il server: il pannello installa WP-CLI (versione fissata e verificata con il checksum ufficiale), Redis (il servizio globale resta spento: ogni sito avrà il suo), le estensioni Redis di PHP e le impostazioni condivise di nginx. La stessa cosa fa panel-agent setup wordpress, eseguito da install.sh e upgrade.sh.
Se il pannello trova WordPress in un sito che già hai, lo segnala: premi Gestisci con il pannello. Non cambia niente finché non attivi qualcosa.
Installazione
Premi Nuovo WordPress e scegli:
- In un sito esistente (solo siti vuoti, appena creati) oppure Crea anche il sito: il nuovo sito rispetta i limiti del pacchetto come un sito normale;
- lingua (italiano di serie), titolo, utente amministratore (evita «admin»: è il primo nome che provano i bot) ed email;
- password: generata dal pannello (la vedi una volta sola, copiala subito) oppure scelta da te (almeno 12 caratteri).
Il pannello crea un database dedicato collegato al sito, scarica WordPress da wordpress.org, scrive wp-config.php con chiavi di sicurezza nuove, imposta i permalink /nome-articolo/, toglie Hello Dolly e Akismet (se lo lasci selezionato), attiva cache delle pagine, Redis e protezioni, sposta WP-Cron sul cron di sistema e controlla che il sito risponda. L'avanzamento si segue passo per passo. Le password non passano mai sulla riga di comando: WP-CLI le riceve dallo standard input.
Tutti i comandi WordPress girano con l'utente di sistema del sito, mai come root: un sito non può toccare gli altri né il server.
Cache
Tre livelli di cache, già configurati:
- Cache delle pagine (nginx): le pagine già pronte vengono servite senza PHP. Non vengono mai messe in cache le richieste POST, gli indirizzi con parametri, gli utenti collegati, carrello, checkout, account (anche WooCommerce), area admin, REST API, feed e sitemap. La durata predefinita è 60 secondi: sicura anche per siti dinamici e un grande vantaggio sotto carico. Svuota tutte cancella la cache del sito. La percentuale mostrata è calcolata dal registro di accesso delle ultime 24 ore.
- Cache degli oggetti · Redis: un Redis privato per ogni sito, raggiungibile solo dal sito su un socket locale (nessuna porta di rete), con memoria limitata (64 MB di serie) e senza salvataggi su disco. Il pannello installa e attiva il plugin Redis Object Cache.
- OPcache: il codice PHP resta in memoria già compilato. È attiva per tutto il server; i numeri mostrati (hit rate, memoria) sono quelli della versione PHP del sito, condivisi da tutti i siti che la usano. Il pannello li legge direttamente da PHP-FPM con un piccolo script che non è raggiungibile dal web.
La scheda scura misura il tempo di risposta della home (TTFB, mediana di 5 misure) con la cache e senza (WordPress standard) e mostra quante volte è più veloce. Premi Misura di nuovo quando vuoi: le misure restano nello storico.
Aggiornamenti sicuri
Aggiorna tutto in sicurezza esegue in ordine:
- controllo che il sito risponda ed elenco degli aggiornamenti;
- copia di sicurezza locale di file e database (più un backup remoto se i backup sono configurati);
- aggiornamento di WordPress e del database, poi dei plugin e dei temi;
- verifica dei file di WordPress con i checksum ufficiali;
- controllo che la home risponda (codice 200, nessun errore PHP, pagina completa).
Se un passo non va bene, il pannello ripristina da solo file e database com'erano un attimo prima e ti avvisa per email. Gli amministratori possono premere Prova il ritorno automatico per verificarlo su un sito.
Aggiornamenti automatici: Disattivati, Solo sicurezza e minori (versioni minori di WordPress e dei plugin) oppure Tutto. Avvengono di notte tra le 2 e le 5, ogni sito al suo orario, sempre con la stessa procedura sicura; l'esito arriva per email all'account (e al suo rivenditore). Serve che il database del sito sia collegato al sito nel pannello.
Backup
Il riquadro Backup, sotto gli aggiornamenti, raccoglie le copie del sito:
- Backup ora fa subito una copia locale di file e database (e un backup remoto, se i backup sono configurati). L'avanzamento si segue passo per passo.
- Copie locali: restano sul server in una cartella che il sito non può leggere né modificare, e si ripristinano in pochi secondi. Oltre a quelle fatte a mano, il pannello ne fa una da solo prima di ogni aggiornamento, prima di pubblicare la copia di prova, prima di Cerca e sostituisci e prima di riparare i file di WordPress. Per ognuna vedi data, motivo, contenuto e spazio occupato. Si tengono le ultime 3 fatte a mano e le ultime 2 automatiche.
- Ripristina rimette la copia scelta. Prima il pannello copia il sito com'è adesso (la trovi nell'elenco come Prima di un ripristino): se il ripristino non va a buon fine o il sito non risponde più, lo rimette com'era da solo; e se cambi idea, puoi ripristinare quella copia.
- Backup remoti: gli ultimi backup del sito sul repository remoto, anch'essi da ripristinare in un clic (file, database o entrambi). Tutti i backup apre la scheda Backup del sito.
Protezioni
Ogni protezione si attiva e disattiva con un interruttore:
- Tentativi di login limitati: al massimo 10 tentativi al minuto per indirizzo su
wp-login.php; - Blocco degli attacchi insistenti: fail2ban blocca per un'ora chi insiste sul login o su XML-RPC;
- XML-RPC chiuso;
- PHP bloccato nella cartella uploads: un file PHP caricato di nascosto non può essere eseguito;
- Editor dei file disattivato (
DISALLOW_FILE_EDIT); - File sensibili nascosti:
wp-config.php, readme, dump SQL e file di log non sono mai scaricabili (il log di debug non lo è in nessun caso); - File di WordPress integri: ogni notte i file vengono confrontati con i checksum ufficiali; se qualcosa è cambiato ricevi un'email;
- Versione di WordPress nascosta: la versione non compare nelle pagine, nei feed e negli indirizzi di stili e script (che restano comunque aggiornati a ogni nuova versione);
- Nomi utente non scopribili: i visitatori non possono scoprire i nomi degli utenti con
?author=1, con l'API REST (/wp-json/wp/v2/users) o nella sitemap. Chi è collegato a WordPress, e quindi l'editor a blocchi, non è toccato.
Le ultime due protezioni stanno in un piccolo plugin obbligatorio (wp-content/mu-plugins/panel-protections.php) che il pannello scrive e aggiorna da solo: non va modificato a mano. Sono già attive sui siti installati o importati dalla versione 0.49.0; sui siti precedenti si accendono dagli interruttori.
L'elenco delle cartelle è sempre disattivato e ogni sito gira isolato nel suo utente.
Vulnerabilità note
Ogni notte il pannello confronta la versione di WordPress e di ogni plugin e tema con l'elenco pubblico delle vulnerabilità note di Wordfence Intelligence. I plugin non aggiornati sono il modo più comune in cui un sito WordPress viene violato.
Per attivarlo un amministratore apre WordPress › Vulnerabilità note, inserisce la chiave API di Wordfence Intelligence (gratuita, anche per uso commerciale: basta un account su Wordfence.com) e accende il controllo notturno. Il pannello scarica l'elenco una volta al giorno e controlla ogni sito alla sua ora notturna, insieme agli altri controlli. La chiave resta cifrata sul server e non viene mai mostrata.
La scheda Vulnerabilità note di ogni sito mostra, per ogni plugin, tema o versione di WordPress colpiti, la vulnerabilità (con il link alla scheda di Wordfence) e la versione che la corregge. Aggiorna quello che ha una correzione avvia l'aggiornamento sicuro solo di quei componenti; Controlla ora ripete il controllo. Quando il controllo notturno trova vulnerabilità nuove, l'account (e il suo rivenditore) riceve un'email con l'elenco.
Con la correzione automatica accesa (impostazione dell'amministratore, per tutti i siti) il pannello aggiorna subito, con la stessa procedura sicura e il ritorno automatico, solo il plugin, il tema o WordPress che hanno una correzione; l'esito arriva per email. Se una vulnerabilità non ha ancora una correzione, conviene disattivare o sostituire il plugin finché l'autore non pubblica una versione sicura.
I plugin "must-use" e i drop-in non vengono controllati: non hanno un nome pubblico da confrontare con l'elenco. Le copie di prova non vengono controllate di notte.
Copia di prova
Crea copia di prova copia file e database in un sito separato dello stesso account (di serie staging.<dominio>: punta quel nome al server nel DNS). Gli indirizzi vengono riscritti anche nei dati serializzati dei plugin; la copia è protetta da password (utente anteprima, la password la vedi nella scheda) e non viene indicizzata dai motori di ricerca.
La copia non conta nel limite di siti del pacchetto (una per sito; il suo spazio conta) ma conta nel limite di siti della licenza del server.
Pubblica in produzione porta la copia sul sito vero: puoi scegliere i file, il database o entrambi. Prima viene fatta una copia di sicurezza del sito pubblicato; se dopo non risponde bene, torna com'era da solo. Attenzione: pubblicando il database, ordini e commenti arrivati sul sito dopo la copia andrebbero persi. Elimina copia cancella il sito di prova e il suo database.
Strumenti
- Entra in wp-admin senza password: apre wp-admin già collegato come amministratore. Il link vale 60 secondi e una volta sola; il pannello conserva solo l'impronta del codice.
- Cerca e sostituisci: prima conta le sostituzioni, poi fa una copia del database e le applica (anche nei dati serializzati). Utile per un cambio di dominio.
- WP-CLI dal browser: gli utenti hanno un elenco di comandi sicuri (svuotare la cache, elencare e attivare plugin, leggere l'indirizzo del sito...); gli amministratori possono usare WP-CLI completo. I comandi girano sempre con l'utente del sito.
- WP-Cron sul cron di sistema: gli eventi programmati girano ogni 5 minuti anche senza visite.
- Modalità debug: gli errori vanno in
wp-content/debug.log(mai mostrati ai visitatori); le ultime 200 righe si leggono dal pannello. - Modalità manutenzione: i visitatori vedono un avviso mentre lavori.
- Smetti di gestire: il sito resta com'è, il pannello toglie cache, Redis, protezioni e cron.
Importazione
Importa un sito esistente porta un WordPress da un altro hosting in un sito vuoto: carica l'archivio dei file (.zip, .tar.gz o .tar) e il dump del database (.sql). Il pannello estrae l'archivio e importa il database con l'utente del sito (mai come root), crea il database, aggiorna wp-config.php mantenendo il prefisso delle tabelle, riscrive il vecchio indirizzo con quello nuovo e attiva cache e protezioni. La dimensione dei file segue il limite di caricamento del file manager. L'importazione diretta da un altro server via SFTP/SSH arriverà in una prossima versione.