Acelerar y optimizar un osCommerce
Cuando nuestra tienda comienza a crecer, ya sea en número de productos (Miles) o en número de usuarios simultáneos, uno de los mayores problemas, es la velocidad de carga en nuestra tienda, ya que las filas afectadas en las querys se han multiplicado, y/o los usuarios simultáneos haciendo diferentes consultas disminuyen la capacidad de respuesta del server.
- Activar la compresión Gzip en el administrador -> configuración (Para aquellos que no la puedan activar vía administrador o usen otro tipo de comercios electrónicos bastaría con poner esta instrucción en sus cabeceras: justo debajo del <?php ob_start(«ob_gzhandler»);La que ya posee el oscommerce es la siguiente:
[sourcecode=php]
// if gzip_compression is enabled, start to buffer the output
if ((GZIP_COMPRESSION == ‘true’) && ($ext_zlib_loaded = extension_loaded(‘zlib’)) &&
(PHP_VERSION >= ‘4’)) {
if (($ini_zlib_output_compression = (int)ini_get(‘zlib.output_compression’)) < 1) {
if (PHP_VERSION >= ‘4.0.4’) {
ob_start(‘ob_gzhandler’);
} else {
include (DIR_WS_FUNCTIONS . ‘gzip_compression.php’);
ob_start();
ob_implicit_flush();
}
} else {
ini_set(‘zlib.output_compression_level’, GZIP_LEVEL);
}
}
[/sourcecode]
- Guardar las sesiones a disco, en vez de al mysql (aunque éste último sea más cómodo y dé menos problemas, es más lento si tenemos muchos usuarios conectados o muchas querys), para hacerlo en nuestros fichero de configuración deberemos dejar la linea store_sessions en blanco, y luego configurar en admin la ruta correcta y con permisos 777, que suele ser «tmp» sin barra, así la podremos alojar en el mismo directorio que la tienda.
- Optimizar script para el box de categorias (el que más querys realiza) utilizando el cache de configuración (Solo usar si no se ha cambiado su diseño interno, sino no funcionará) y si es posible no mostrar el contador de productos, ya que es recursivo el script, con ésta contribución bastaría.
- Comprimir y redimensionar siempre la imágenes de producto, con el módulo de Smooth pictures
- Actualizar a MYSQL 5.x y PHP 5.x a sus últimas versiones.
- Si es posible, intentar separar la BBDD MySQL en otra máquina (Solo si sale rentable) y configurarlo en el configure.php el nuevo DB_SERVER
- Si es posible, intentar separar las imágenes en otra máquina y configurarlo en el .htaccess
- Instalar algún debug para ver lo que tardan las querys MySQL en realidad, y ver si se ha mejorado o no, con los cambios efectuados. Algunos módulos recomendados son:
– http://addons.oscommerce.com/info/2575
– http://addons.oscommerce.com/info/4689
Ya me comentareis si habéis notado cambio en unos días …