Aspetto
Tunnel HTTP
L'hosting condiviso (cPanel e simili) spesso non offre né l'accesso SSH né una porta del database aperta: il database accetta connessioni solo dal server web stesso. Il tunnel HTTP vi porta comunque a destinazione: caricate un piccolo script PHP generato da NabuSQL, e NabuSQL invia il lavoro a quello script, che lo esegue sul server.
Il tunnel è disponibile per le connessioni MariaDB. Il server web richiede PHP 7.4 o successivo (consigliato PHP 8.x) con le estensioni mysqli e openssl, presenti praticamente su ogni hosting.
Provate prima Remote MySQL
Se il vostro hosting vi permette di autorizzare il vostro indirizzo IP in Remote MySQL di cPanel, una connessione diretta è più semplice e veloce. Usate il tunnel quando non è possibile o quando la porta 3306 resta comunque chiusa.
Come funziona e perché è sicuro
- Uno script per connessione. Quando scaricate lo script, NabuSQL genera una chiave casuale a 256 bit e la scrive nel file. La stessa chiave viene salvata con la connessione, cifrata come le vostre password.
- Tutto è cifrato. Ogni richiesta e ogni risposta — nome utente e password del database, le vostre query, i risultati — è cifrata con AES-256-GCM tramite quella chiave. Usate comunque un indirizzo
https://, che nasconde anche con quale script state comunicando. - Senza chiave, nessun accesso. Una richiesta non cifrata con la chiave giusta riceve un semplice
404 Not Found, quindi lo script non è nemmeno distinguibile da una pagina inesistente. Una richiesta registrata non può essere ripetuta in seguito. - Lo script non conserva dati. Conserva solo la chiave. La password del database viaggia ogni volta dentro la richiesta cifrata e non viene mai scritta sul server.
- Nulla passa da noi. NabuSQL comunica direttamente con lo script sul vostro server.
Configurazione
- Create una nuova connessione e scegliete MariaDB.
- Nella scheda Base inserite il database come lo vede lo script sul server:
- Host:
localhost - Porta:
3306 - Utente, Password e Database: i nomi completi di cPanel, con il prefisso dell'account (per esempio
mioaccount_appemioaccount_db).
- Host:
- Aprite la scheda Tunnel HTTP e attivate Usa il tunnel HTTP. Da questo momento la connessione funziona solo tramite il tunnel; il tunnel SSH viene disattivato.
- Se volete, impostate i limiti PHP.
- Fate clic su Scarica lo script PHP e salvate il file (
nabu_xxxxxxxx.php). - Caricate il file sul server web con il File Manager dell'hosting o via FTP, per esempio in
public_html. - In URL dello script inserite l'indirizzo dello script, per esempio
https://esempio.it/nabu_xxxxxxxx.php. - Fate clic su Verifica lo script. Mostra la versione di PHP, la presenza di
mysqlieopenssle i limiti dell'hosting. - Fate clic su Test connessione, poi su Salva.
Aprendo lo script nel browser appare «Not Found»
È voluto. Senza la chiave lo script risponde a ogni richiesta con un 404.
Limiti PHP
Due impostazioni PHP possono essere aumentate dallo script stesso. Lasciatele vuote per mantenere i valori predefiniti dell'hosting.
| Impostazione | Significato |
|---|---|
| max_execution_time | Secondi di durata massima di una richiesta. 0 rimuove il limite PHP |
| memory_limit | Memoria utilizzabile da una richiesta, per esempio 256M. -1 rimuove il limite |
Alcuni hosting non consentono valori più alti. Verifica lo script mostra sempre i valori effettivamente in vigore e avvisa quando l'hosting ha rifiutato quanto richiesto. Anche senza limite PHP, il server web termina una richiesta dopo alcuni minuti: «illimitato» non è mai davvero illimitato.
post_max_size (la richiesta più grande accettata dal server) non può essere impostato da uno script. Se serve, modificatelo in cPanel in MultiPHP INI Editor. NabuSQL lo legge e adatta la dimensione delle proprie richieste.
Dopo aver modificato un limite, scaricate di nuovo lo script e sostituite il file sul server.
Cosa funziona tramite il tunnel
Quasi tutto ciò che fate con una connessione diretta:
- navigazione di database, tabelle, viste, routine, trigger e sequenze;
- la griglia dati con filtri, ordinamento e modifica, visualizzatore BLOB e statistiche delle colonne;
- l'editor SQL, EXPLAIN e il profiler delle query;
- l'editor della struttura (colonne, indici, chiavi, trigger);
- backup, ripristino, Esegui file SQL, Dump in file SQL e dump a campione;
- esportazione e importazione (CSV, Excel e altri);
- Data Transfer — da e verso una connessione tramite tunnel, e tra due di esse;
- confronto di struttura e dati, ricerca nei dati, manutenzione (CHECK, OPTIMIZE, REPAIR, ANALYZE);
- proprietà del database, rinomina di database e tabelle, cronologia delle righe, elenco dei processi.
Non disponibile tramite il tunnel:
- gestione di utenti e privilegi — sull'hosting condiviso si gestiscono in cPanel;
- Task Scheduler e creazione di un database da XML/JSON;
- interruzione di una query in esecuzione;
- l'opzione transazione in Esegui file SQL e in Data Transfer: ogni richiesta tramite il tunnel è una sessione separata del database, quindi una transazione non può abbracciarne più di una. Le istruzioni vengono eseguite a blocchi, ciascuno confermato al termine.
Le voci non disponibili sono disattivate nei menu.
Risultati di grandi dimensioni
Una richiesta può usare solo la memoria e il tempo consentiti dall'hosting, quindi NabuSQL non chiede mai più di quanto ci stia:
- la griglia dati carica una pagina alla volta, come sempre;
- una query nell'editor SQL con un risultato molto grande viene troncata in un punto sicuro e accanto al numero di righe compare Risultato troncato — aggiungete un
LIMITo unWHEREpiù restrittivo; - backup, esportazione e Data Transfer leggono le tabelle grandi in pagine più piccole. Una pagina che non ci sta viene riletta a metà dimensione; un backup non è mai incompleto in silenzio;
- ripristino e importazione inviano le istruzioni a blocchi dimensionati su
post_max_sizeememory_limitdell'hosting.
Aggiornare lo script
Le nuove versioni di NabuSQL a volte richiedono uno script più recente. In quel caso compare il messaggio che lo script sul server è obsoleto (The tunnel script on the server is outdated). Fate di nuovo clic su Scarica lo script PHP — la chiave resta la stessa — e sostituite il file sul server.
Risoluzione dei problemi
| Messaggio | Cosa fare |
|---|---|
| Endpoint returned 404 in Verifica lo script | Indirizzo errato, oppure il file sul server appartiene a un'altra connessione. Controllate l'URL, poi scaricate di nuovo lo script e sostituite il file. |
| Access denied for user … | Nome utente, password o database nella scheda Base. Usate i nomi completi di cPanel con il prefisso; l'host resta localhost. |
| Access denied … to database 'information_schema' | Come destinazione è stato scelto un database di sistema. Scegliete il vostro database. |
| Allowed memory size … exhausted | Il memory_limit dell'hosting è troppo basso per quell'operazione. Aumentatelo nei limiti PHP o in cPanel. |
| HTTP 500 | Lo script è fallito sul server, di solito per memoria o tempo. I dettagli sono nel log degli errori dell'hosting. |
| HTTP 403 | Un firewall dell'hosting (per esempio ModSecurity) ha bloccato la richiesta. Chiedete all'hosting di consentire l'indirizzo dello script. |
| Lo script è obsoleto | Vedere Aggiornare lo script. |
| Not available over the HTTP tunnel yet | La funzione non è supportata tramite il tunnel — vedere l'elenco. |
| La rinomina o la creazione di un database non riesce | Su cPanel l'utente del database di solito non può creare database. Createli in cPanel. |
Quando smettete di usare il tunnel, eliminate lo script dal server.
