salta alla navigazione

Connettersi a un database esterno da shared hosting che vietano l’uso di DB di terze parti febbraio 12, 2009

Inviato da davide in : Informatica , trackback

Ciao a tutti,
oggi vi mostro un piccolo trucchetto che mi è tornato utile quando, per aggiornamenti tecnici del sito, ci era stato comunicato che sarebbe venuta a mancare la connessione al database su cui manteniamo il blog.

Non assicuro che la cosa funzioni con tutti gli hosting provider, ma a me con Godaddy ha funzionato.
Il problema è che molti shared hosting danno la possibilità di connettersi solo ai propri database, bloccando le connessioni esterne verso porte diverse da quelle usate per il web. Questo avviene senz’altro per diversi motivi… i primi che mi vengono in mente sono:

  1. Possibilità di guadagnare su eventuali nuovi acquisti/upgrade di database da parte del cliente… insomma una forma di lock in del consumatore (hai l’hosting da noi e ora se vuoi usare un DB devi comprartelo qui :P )
  2. Il fatto che (forse, non mi sono informato…) sui loro DB mettano limiti di traffico, e su quelli esterni no
  3. sicurezza…

Beh, la soluzione è semplice: solitamente, ogni hosting provider permette la connessione ALMENO alla porta 80 e alla 443… mettiamo il nostro database esterno in ascolto su tale porta ;)

Esempio: io da casa mi ero fatto un backup del db, e per il breve tempo in cui il database server dell’hosting è stato down, mi è bastato mappare, via NAT del router, la porta 80 esterna sulla 3306 (mysql) del pc su cui avevo caricato il database di backup:

$mio_ip=”12.34.56.78″;
mysql_connect( $mio_ip.”:80″, “backup_user”, “backup_password” );

Se anche a voi bloccano le connessioni a database esterni, questa è senz’altro una soluzione buona e veloce, a patto che abbiate la possibilità di impostare la porta di ascolto del vostro database server esterno sulla 80 o la 443 (o redirigerla via NAT come ho fatto io).

Commenti»

no comments yet - be the first?