Habilitar caché con APC en Magento

Si bien Magento propone algunas alternativas para caché, las más interesantes tienen que ser activadas a mano, modificando uno de los archivos de configuración.

El instalador de la aplicación, utiliza un template que almacena lo siguiente:

  • fecha de instalación
  • la clave usada para el salt
  • la posibilidad de deshabilitar módulos locales
  • configuración de la base de datos
  • sistema de almacenamiento de las sesiones
  • path del backend

Esos son los parámetros que por defecto, se almacenarán en:

/app/etc/local.xml

Para poder activar el caché, en nuestro caso, utilizando APC, bastará con agregar la siguiente información en el xml mencionado.

<cache>
    <backend>apc</backend>
    <prefix>alphanumeric</prefix>
</cache>

Esto debe agregarse dentro del tag <global> del xml.

Si queremos que esto esté habilitado para cada vez que instalamos la aplicación, lo más sencillo es modificar el template. El mismo se encuentra en:

/app/etc/local.xml.template

Considerando el template y nuestro agregado, el xml modelo quedaría de la siguiente forma:

<config>
    <global>
        <install>
            <date>{{date}}</date>
        </install> 
        <crypt>
            <key>{{key}}</key>
        </crypt> 
        <disable_local_modules>false</disable_local_modules>
        <resources>
            <db>
                <table_prefix>{{db_prefix}}</table_prefix>
            </db>
            <default_setup>
                <connection>
                    <host>{{db_host}}</host>
                    <username>{{db_user}}</username>
                    <password>{{db_pass}}</password>
                    <dbname>{{db_name}}</dbname>
                    <active>1</active>
                </connection>
            </default_setup>
        </resources> 
        <session_save>{{session_save}}</session_save>
        <cache>
            <backend>apc</backend>
            <prefix>alphanumeric_prefix</prefix>
        </cache>
    </global> 
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <frontname>{{admin_frontname}}</frontname>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

Ahora si, cada vez que instalemos nuestra copia de la plataforma, APC estará habilitado.

Mantenimiento de tablas en Mysql

Pequeña gran instrucción para mantener la salud de nuestras tablas.

OPTIMIZE TABLE tabla;

Lo que logramos es eliminar por completo todo el espacio ocupado por registros que ya han sido borrados. Si esto lo pensamos sobre una tabla que tiene, como mínimo, miles de escrituras diarias, vamos a poder ver cómo ayuda la ejecución periódica de ésta sentencia.

Para más información, la documentación oficial.

Recuperar contraseña de root en Mysql

Hace un par de días, me tocó tener que configurar varios servicios de un servidor recién instalado (por otra persona). Como puede darse en estos casos, a veces la documentación que te facilitan, no coincide con la realidad.

En mi caso, no había forma de acceder a Mysql. El usuario root no respondía en lo más mínimo. Es por eso que recurrí a mi memoria y a mis apuntes, y me dispuse a cambiar la contraseña del usuario root.

A continuación, los pasos para cuando nos topemos con la misma situación (el ejemplo está basado en su aplicación sobre Linux).

Detenemos el servicio de Mysql.

/etc/init.d/mysql stop
Seguir leyendo «Recuperar contraseña de root en Mysql»

Magento, la evolución del eCommerce

Hace ya un año, apareció una nueva alternativa en cuanto a plataformas de eCommerce se refiere. Antes de hablar de sus virtudes, vale aclarar una característica fundamental: es open source.

Magento es una solución bastante nueva, el pasado 30 de Agosto cumplió su primer año de vida.

En mi caso, hace sólo unos meses que trabajo con la plataforma y que participo de manera relativamente activa con la comunidad (que lentamente va creciendo).

La idea de este post no es hacer una revisión detallada de la aplicación, sino servir como introducción a lo que espero se convierta en una seguidilla de artículos, tips e intercambio de información; ya que la comunidad en español crece, pero no tan rápido como otras.

Poniéndome un poco más técnico, adelanto que los próximos posts van a tratar los temas de instalación, de mejora de performance, gestión del backend, creación de módulos y algunas cuestiones de arquitectura con las que, al momento de querer extender o modificar la plataforma, uno tiene que estar lidiando.