Skip to content

HTTP-tunel ​

Deljeno gostovanje (cPanel in podobno) pogosto ne omogoča niti dostopa SSH niti odprtih vrat podatkovne baze. Baza sprejema povezave samo s samega spletnega strežnika. Tunel HTTP vas kljub temu pripelje do nje: na strežnik naložite majhno skripto PHP, ki jo ustvari NabuSQL, NabuSQL pa delo pošilja tej skripti, ki ga izvede na strežniku.

Tunel je na voljo za povezave MariaDB. Spletni strežnik potrebuje PHP 7.4 ali novejši (priporočen je PHP 8.x) z razširitvama mysqli in openssl, ki ju ima skoraj vsako gostovanje.

Najprej poskusite Remote MySQL

Če vam gostovanje v cPanelu pod Remote MySQL dovoli dodati vaš naslov IP, je neposredna povezava preprostejša in hitrejša. Tunel uporabite, kadar to ni mogoče ali kadar vrata 3306 ostanejo zaprta.

Kako deluje in zakaj je varen ​

  • Ena skripta na povezavo. Ko prenesete skripto, NabuSQL ustvari naključen 256-bitni ključ in ga zapiše v datoteko. Isti ključ se shrani k povezavi, šifriran tako kot vaša gesla.
  • Vse je šifrirano. Vsaka zahteva in vsak odgovor — uporabniško ime in geslo baze, vaše poizvedbe, rezultati — so šifrirani z AES-256-GCM s tem ključem. Vseeno uporabite naslov https://; skrije tudi, s katero skripto se pogovarjate.
  • Brez ključa ni dostopa. Zahteva, ki ni šifrirana s pravim ključem, dobi navaden 404 Not Found, zato skripte ni mogoče ločiti od neobstoječe strani. Posnete zahteve ni mogoče pozneje ponoviti.
  • Skripta ne hrani podatkov. Hrani le ključ. Geslo baze vsakič potuje znotraj šifrirane zahteve in se nikoli ne zapiše na strežnik.
  • Nič ne gre prek nas. NabuSQL se pogovarja neposredno s skripto na vašem strežniku.

Nastavitev ​

  1. Ustvarite novo povezavo in izberite MariaDB.
  2. Na zavihku Osnovno vnesite bazo tako, kot jo vidi skripta na strežniku:
    • Gostitelj: localhost
    • Vrata: 3306
    • Uporabnik, Geslo in Baza: polna imena iz cPanela s predpono računa (npr. mojracun_app in mojracun_db).
  3. Odprite zavihek HTTP tunel in vklopite Uporabi HTTP tunel. Od tedaj ta povezava deluje izključno prek tunela; tunel SSH se izklopi.
  4. Po želji nastavite omejitve PHP.
  5. Kliknite Prenesi skripto PHP in shranite datoteko (nabu_xxxxxxxx.php).
  6. Datoteko naložite na spletni strežnik z upraviteljem datotek gostovanja ali prek FTP, npr. v public_html.
  7. V URL skripte vpišite naslov skripte, npr. https://primer.si/nabu_xxxxxxxx.php.
  8. Kliknite Preveri skripto. Prikaže različico PHP, ali sta na voljo mysqli in openssl, ter omejitve gostovanja.
  9. Kliknite Test povezave, nato Shrani.

Odpiranje skripte v brskalniku pokaže »Not Found«

Tako mora biti. Brez ključa skripta na vsako zahtevo odgovori s 404.

Omejitve PHP ​

Dve nastavitvi PHP lahko povečate iz same skripte. Pustite ju prazni, da ostanejo privzete vrednosti gostovanja.

NastavitevPomen
max_execution_timeKoliko sekund sme trajati ena zahteva. 0 odstrani omejitev PHP
memory_limitKoliko pomnilnika sme porabiti ena zahteva, npr. 256M. -1 odstrani omejitev

Nekatera gostovanja višjih vrednosti ne dovolijo. Preveri skripto vedno pokaže dejanske vrednosti in opozori, kadar gostitelj zahtevanega ni sprejel. Tudi brez omejitve PHP spletni strežnik zahtevo prekine po nekaj minutah, zato »brez omejitve« nikoli ni dobesedno brez omejitve.

post_max_size (največja zahteva, ki jo strežnik sprejme) iz skripte ni mogoče nastaviti. Po potrebi ga spremenite v cPanelu pod MultiPHP INI Editor. NabuSQL ga prebere in prilagodi velikost svojih zahtev.

Po spremembi omejitve skripto znova prenesite in zamenjajte datoteko na strežniku.

Kaj deluje prek tunela ​

Skoraj vse, kar počnete z neposredno povezavo:

  • pregled baz, tabel, pogledov, rutin, prožilcev in zaporedij;
  • mreža s podatki s filtriranjem, razvrščanjem in urejanjem, pregledovalnik BLOB in statistika stolpcev;
  • urejevalnik SQL, EXPLAIN in profiler poizvedb;
  • urejevalnik strukture (stolpci, indeksi, ključi, prožilci);
  • varnostno kopiranje, obnova, Izvedi datoteko SQL, Izvoz v datoteko SQL in vzorčni izvoz;
  • izvoz in uvoz (CSV, Excel in drugi);
  • Data Transfer — s povezave prek tunela, nanjo in med dvema takima povezavama;
  • primerjava strukture in podatkov, iskanje podatkov, vzdrževanje (CHECK, OPTIMIZE, REPAIR, ANALYZE);
  • lastnosti baze, preimenovanje baz in tabel, zgodovina vrstic, seznam procesov.

Prek tunela ni na voljo:

  • upravljanje uporabnikov in pravic — na deljenem gostovanju to urejate v cPanelu;
  • Task Scheduler in ustvarjanje baze iz XML/JSON;
  • ustavitev poizvedbe, ki se izvaja;
  • možnost transakcije v Izvedi datoteko SQL in Data Transferju: vsaka zahteva prek tunela je ločena seja baze, zato ena transakcija ne more zajeti več zahtev. Stavki se izvajajo v paketih, vsak se potrdi, ko se konča.

Kar ni na voljo, je v menijih zatemnjeno.

Veliki rezultati ​

Ena zahteva sme porabiti le toliko pomnilnika in časa, kot dovoli gostovanje, zato NabuSQL nikoli ne zahteva več, kot se prilega:

  • mreža s podatki nalaga stran za stranjo, kot vedno;
  • poizvedba v urejevalniku SQL z zelo velikim rezultatom se prekine na varnem mestu, ob številu vrstic pa piše Rezultat je okrnjen — dodajte LIMIT ali ožji WHERE;
  • varnostno kopiranje, izvoz in Data Transfer berejo velike tabele v manjših straneh. Stran, ki se ne prilega, se prebere znova s polovično velikostjo; varnostna kopija nikoli ni tiho nepopolna;
  • obnova in uvoz pošiljata stavke v paketih, prilagojenih post_max_size in memory_limit gostovanja.

Posodobitev skripte ​

Nove različice NabuSQL včasih potrebujejo novejšo skripto. Takrat se pokaže sporočilo, da je skripta na strežniku zastarela (The tunnel script on the server is outdated). Znova kliknite Prenesi skripto PHP — ključ ostane enak — in zamenjajte datoteko na strežniku.

Odpravljanje težav ​

SporočiloKaj storiti
Endpoint returned 404 pri Preveri skriptoNapačen naslov ali datoteka na strežniku pripada drugi povezavi. Preverite URL, nato skripto znova prenesite in zamenjajte datoteko.
Access denied for user …Uporabniško ime, geslo ali baza na zavihku Osnovno. Uporabite polna imena iz cPanela s predpono; gostitelj ostane localhost.
Access denied … to database 'information_schema'Za cilj je izbrana sistemska baza. Izberite svojo bazo.
Allowed memory size … exhaustedmemory_limit gostovanja je premajhen za to operacijo. Povečajte ga v omejitvah PHP ali v cPanelu.
HTTP 500Skripta se je na strežniku zrušila, običajno zaradi pomnilnika ali časa. Podrobnosti so v dnevniku napak gostovanja.
HTTP 403Požarni zid gostovanja (npr. ModSecurity) je blokiral zahtevo. Prosite gostitelja, naj dovoli naslov skripte.
Skripta je zastarelaGlejte Posodobitev skripte.
Not available over the HTTP tunnel yetTa funkcija prek tunela ne deluje — glejte seznam.
Preimenovanje ali ustvarjanje baze ne uspeV cPanelu uporabnik baze običajno ne sme ustvarjati baz. Ustvarite jih v cPanelu.

Ko tunela ne uporabljate več, skripto izbrišite s strežnika.