Optimizar  WAMP  (Windows, Apache, MySQL, PHP) para trabajar con Drupal

Optimizar WAMP (Windows, Apache, MySQL, PHP) para trabajar con Drupal

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

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

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