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é :
- Deshabilitar los módulos : help , Database Logging , Update Status.
- Excluir los servicios de Apache , php y mysql en nuestro firewall.
- Deshabilitar IPv6
- Deshabilitar la extensión xdebug
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

