head

Ya había trabajado con windows en algunos proyectos de PHP y Mysql   y sabia que Apache en general corre muy lento en este sistema operativo, por lo que hace mucho me pase a linux y todo mejoro.

Por asares del destino me toco volver a windows  y trabajar  con un proyecto Drupal,  había usado programas como  Wamp y Xampp  que instalan todo lo necesario para desarrollar con php , pero  encontré un nuevo software   llamado AMPPS que se me hizo muy completo y  del  cual hablare en otro post .

Al instalar Drupal 7  en AMPPS  note que    era realmente  lento,  incluso  sin módulos instalados , el tiempo para realizar cualquier tarea era excesivo (alrededor de 30s)  por lo que  instale  Drupal 6 para probar y me paso lo mismo,  me desconcertó al principio así que recurrí a nuestro amigo Google  donde encontré una gran cantidad de posts  y foros en los que  se hablaba del tema.

Después de varias pruebas,  aplique  los siguientes  tips   realmente   funcionaron y mejoraron el rendimiento de Drupal ( 6 y 7 )     :

*Como siempre antes de cualquier modificación se recomienda hacer un backup  :

(La ubicación de los  archivos php.ini y my.ini dependen del paquete que tengas instalado  Wamp, Xampp, Ampps , EasyPHP  etc)

Modificar el archivo php.ini  :

realpath_cache_size=8M
php_value memory_limit = 512M
max_execution_time =300

Modificar el archivo my.ini de MySQL :

innodb_flush_log_at_trx_commit = 2

Modificar el archivo hosts de Windows :

Con permisos de administrador, vamos a modificar el archivo hosts  que se encuentra en  C:\Windows\System32\drivers\etc  ( Windows 7 )

127.0.0.1       localhost
# ::1             localhost // comentar esta linea

 Convertir tablas InnoDB a MyISaM 

Vamos a crear un archivo *.php con el siguiente código y guardarlo como myisam.php en el root del directorio de drupal , después accedemos vía url http://tusitio.com/myisam.php .

myisam.php :

<?php
$dbAddress = "localhost";
$dbUser = "root";                                                               
$dbPass = "userpass";
$dbName = "drupal_database";

print('DATABASE = '.$dbName.'<br />');

function queryDb($sqlStr)
{
    mysql_connect($GLOBALS["dbAddress"], $GLOBALS["dbUser"], $GLOBALS["dbPass"]) or die('Error: Cannot connect to database');
    mysql_select_db($GLOBALS["dbName"]) or die('Error: Cannot select database');
    if($result = mysql_query($sqlStr))
        return $result;
    else
    {
        print('Query failed: '.mysql_error());
        print('<pre>'.$sqlStr.'</pre>');
        die();
    }
}

if($result = queryDb("
    SELECT TABLE_NAME, ENGINE
      FROM information_schema.TABLES
      WHERE TABLE_SCHEMA = '$dbName'
"))
{
    while($row = mysql_fetch_assoc($result))
    {

        queryDb("ALTER TABLE ".$row['TABLE_NAME']." ENGINE = MyISAM");
            print('TABLE_NAME = '.$row['TABLE_NAME'].', ENGINE = '.$row['ENGINE'].'<br />');
    }    
}
?>

Una vez realizados los cambios vamos a reiniciar nuestra maquina para que surtan efecto  .

Otros tips que encontré :

Estas modificaciones se hicieron en dos equipos con  buenos resultados :

  • Drupal 6.28  y 7.23 (Php 5.3 / apache  / mysql 5)
  • Softaculous  AMPPS
  • Windows 7 Profesional 64bits
  • 6GB de RAM
  • Core i5 3.2mhz.

y en un portátil :

  • Drupal 6.28 y Drupal 7.23  (Php 5.3 / apache  / mysql 5)
  • WAMP server
  • Windows XP Service Pack 3
  • 4GB de Ram
  • Dual Core 2.2mhz.

También existe una distribución llamada Acquia que tiene todo lo necesario para trabajar con Drupal en Windows  http://www.acquia.com/downloads

por Dan Iel

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *