Skip to content

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 ​

  1. Create una nuova connessione e scegliete MariaDB.
  2. 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_app e mioaccount_db).
  3. 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.
  4. Se volete, impostate i limiti PHP.
  5. Fate clic su Scarica lo script PHP e salvate il file (nabu_xxxxxxxx.php).
  6. Caricate il file sul server web con il File Manager dell'hosting o via FTP, per esempio in public_html.
  7. In URL dello script inserite l'indirizzo dello script, per esempio https://esempio.it/nabu_xxxxxxxx.php.
  8. Fate clic su Verifica lo script. Mostra la versione di PHP, la presenza di mysqli e openssl e i limiti dell'hosting.
  9. 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.

ImpostazioneSignificato
max_execution_timeSecondi di durata massima di una richiesta. 0 rimuove il limite PHP
memory_limitMemoria 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 LIMIT o un WHERE più 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_size e memory_limit dell'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 ​

MessaggioCosa fare
Endpoint returned 404 in Verifica lo scriptIndirizzo 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 … exhaustedIl memory_limit dell'hosting è troppo basso per quell'operazione. Aumentatelo nei limiti PHP o in cPanel.
HTTP 500Lo script è fallito sul server, di solito per memoria o tempo. I dettagli sono nel log degli errori dell'hosting.
HTTP 403Un firewall dell'hosting (per esempio ModSecurity) ha bloccato la richiesta. Chiedete all'hosting di consentire l'indirizzo dello script.
Lo script è obsoletoVedere Aggiornare lo script.
Not available over the HTTP tunnel yetLa funzione non è supportata tramite il tunnel — vedere l'elenco.
La rinomina o la creazione di un database non riesceSu 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.