Back to top

Autore Topic: Migliorare le prestazioni del database di Joomla!  (Letto 6268 volte)

Offline leoci

  • Esploratore
  • **
  • Post: 51
  • Sesso: Maschio
    • Mostra profilo
Migliorare le prestazioni del database di Joomla!
« il: 27 Ott 2008, 14:11:31 »
E' risaputo che molto spesso il degrado delle prestazioni di un sito realizzato con joomla può essere condizionato dalla necessità di ottimizzare le tabelle del database Mysql.
In effetti, ottimizzando il database tramite Phpmyadmin, la differenza si vede eccome. Però per effettuare questa operazione è necessario connettersi con Phpmyadmin, autenticarsi, selezionare tutte le tabelle, dare il comando di ottimizzazione, disconnettersi, ecc..
Troppi click!
Allora ho cercato su internet qualcosa che non fosse un'estensione, per non appesantire eccessivamente il sito, e che permettesse di ottimizzare velocemente il database. Alla fine ho trovato un semplice script in php, che una volta uploadato sul server e protetto eventualmente con una password, permette di effettuare l'ottimizzazione semplicemente richiamando http://www.miosito.it/script.php.
Lo script è questo, spero che possa tornare utile anche ad altri.
Codice: [Seleziona]
<?php
if (!ini_get('safe_mode')) {
set_time_limit(2400);
}
$host="localhost";
$user ="nome_utente";
$pass "password";
$DB_name="nome_database";
$msg="";
$link mysql_connect($host,$user,$pass);
if ( ! 
$link ) die("Errore ...impossibile connettersi a MYSQL");
if(!@
mysql_select_db($DB_name,$link)) die("Errore ...impossibile connettersi al DataBase".mysql_error());
echo <<<EOT
<html><head><title>Ottimizzazione Tabelle</title>
<STYLE TYPE="text/css">
BODY{BACKGROUND-COLOR: #dfdfd1;FONT:BOLDER 14px VERDANA,ARIAL,MS Sans Serif;color:red;}
</STYLE>
</head>
<body >
<center>
<h3>Ottimizzazione Tabelle<br> 
$DB_user</h3>
<p>
EOT;
$query="SHOW TABLE STATUS FROM $DB_name ";
$resultmysql_query ($query) or die ("errore : "mysql_error() );
if(
mysql_num_rows($result)){
while(
$row=mysql_fetch_array($result)){
$query='OPTIMIZE TABLE '.$row[0];
$result1=mysql_query($query) or die("errore : "mysql_error()."\n");
$row1=mysql_fetch_row($result1);
if(
$row1[2]!='status') echo "Tabella: $row[0] <br> - $row1[2]$row1[3]<br>";
else echo 
"Tabella: $row[0] O.K.<br>";
}
}
echo <<<EOT
<script>
alert("Ottimizzazione O.K.")
self.close()
</script>
EOT;
exit;
?>

Un saluto a tutti
Informazione e tecnologie sui sistemi di sicurezza

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re: Migliorare le prestazioni del database di Joomla!
« Risposta #1 il: 28 Ott 2008, 13:45:55 »
Ottimo! Grazie per il suggerimento. Faccio subito un copia e incolla.

Ciao

Offline programmigratis

  • Esploratore
  • **
  • Post: 134
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #2 il: 26 Mag 2009, 22:32:00 »
Come posso proteggere il files script.php con una password?

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #3 il: 27 Mag 2009, 08:34:01 »
Devi inserire altro codice che protegga quello di ottimizzazione da intrusioni illecite.

In altre parole al primo accesso devi rendere visibile solo un form che richiede la password e, a "valle" dell'autenticazione, mandi in esecuzione il resto dello script.

Tipo una roba del genere:

la prima volta entri così

if(isSet($_GET['task'])) $task=$_GET['task']; else $task='login';
if($task=='login') {
//Codice html che genera il form per l'invio della password
                   }

e la seconda

$if($task=='autenticazione') {
$password=$_POST['password'];
if($password=='password') {
//Codice di ottimizzazione
                          } else echo 'Autenticazione fallita';
                             }

P.S. Spero che tu mastichi un po' di php...



Offline enricomainero

  • Appassionato
  • ***
  • Post: 360
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #4 il: 05 Dic 2011, 17:18:10 »
Ciao ragazzi,

ho trovato questa discussione. E' ancora valida la strada che suggerisce leoci?

Oppure è consigliabile (come ho letto in un'altra disussione):

      1) Entrare nel proprio pannello mysql.
      2) Selezionare il db sul quale è presente il vostro joomla
      3) Scorrere tutta la pagina di mysql e selezionare in fondo alla pagina la voce: Seleziona Tutti
      4) Selezionare Ottimizza tabella nel menu a tendina a sinista del pulsante Seleziona Tutti
      5) Attendere che tutte le tabelle vengano ottimizzate.
      6) Avrete così il resoconto delle tabelle ottimizzate, ora potete chiudere il vostro pannello mysql.

Oppure ancora è consigliabile istallare questo componente http://extensions.joomla.org/extensions/648/details

Grazie
ElaMedia - Web Agency di Roma: Realizzazione siti web, Promozione e Formazione certificata

mau_develop

  • Visitatore
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #5 il: 05 Dic 2011, 17:56:11 »
lascia perdere lo script :) è illogico! siccome ci sono troppi click devo uppare tutte le volte un file.... non voglio nemmeno considerare l'idiozia di lasciare sul server quel file.

il modo corretto è farlo con phpmyadmin
1) Entrare nel proprio pannello mysql.
      2) Selezionare il db sul quale è presente il vostro joomla

      3) Scorrere tutta la pagina di mysql e selezionare in fondo alla pagina la voce: Seleziona Tutti
-----------------------------------------------------------------------------
... mapperche?? se le tabelle sono da ottimizzare lo vedi dalla lista di riepilogo se ha dei byte in + (sulla dx) se lezioni quella tabella, vai sulla select in fondo e selezioni "ottimizza"
Solitamente sono da ottimizzare le tabelle che ricevono contenuti

Prima di smanacciare sui db si fa un backup

M.

Offline enricomainero

  • Appassionato
  • ***
  • Post: 360
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #6 il: 05 Dic 2011, 21:20:10 »
ok grazie!!!

e invece il componente? me lo consigli?
ElaMedia - Web Agency di Roma: Realizzazione siti web, Promozione e Formazione certificata

mau_develop

  • Visitatore
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #7 il: 05 Dic 2011, 21:31:54 »
ma che è quello..un componente?

non impestate joomla di roba inutile

M.

Offline enricomainero

  • Appassionato
  • ***
  • Post: 360
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #8 il: 05 Dic 2011, 21:39:34 »
Ottima risposta :)

Grazie
ElaMedia - Web Agency di Roma: Realizzazione siti web, Promozione e Formazione certificata

Offline enricomainero

  • Appassionato
  • ***
  • Post: 360
    • Mostra profilo
Re:Migliorare le prestazioni del database di Joomla!
« Risposta #9 il: 05 Dic 2011, 21:54:16 »
ElaMedia - Web Agency di Roma: Realizzazione siti web, Promozione e Formazione certificata

 



Web Design Bolzano Kreatif