Errores cuando instalamos Magento

Errores al instalar Magento en un servidor local

En esta ocasión quiero documentar algunos de los errores al instalar Magento en un servidor local. Una tarea tan fácil, en ocasiones puede convertirse en un autentico dolor de cabeza. Vamos a ver como corregir los siguientes errores y finalizar la instalación con éxito. ¡Al lio!

Error de validación de URL en localhost

Si has tratado de configurar una instalación de Magento en un entorno de desarrollo utilizando WAMP, XAMPP, etc… es posible que te veas frente al error de validación de la URL. Vamos a ver cómo solventar este problema pudiendo así completar correctamente la instalación de Magento en el localhost.

Error de validación de URL localhost en Magento

  1. Abre el directorio /js/prototype/
  2. Verás el archivo validation.js, abre este archivo en un editor de texto.
  3. Busca el código entre las líneas 576 a 579 (aproximadamente), similar al siguiente fragmento de código.
    ['validate-url', 'Please enter a valid URL. Protocol is required (https://, httpss:// or ftp://)', function (v) {
         return Validation.get('IsEmpty').test(v) || /^(https|httpss|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-  Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
          }],
    
  4. Ahora hay que comentar esas tres líneas de código escribiendo // delante de cada una de ellas, o bien escribiendo /* al principio y */ al final. El siguiente fragmento de código muestra cómo debe quedar después de editarlo. Con esto conseguimos desactivar las líneas de código que comprueban un nombre de dominio válido durante la instalación de Magento.
    /* ['validate-url', 'Please enter a valid URL. Protocol is required (https://, httpss:// or ftp://)', function (v) {
          return Validation.get('IsEmpty').test(v) || /^(https|httpss|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
        }], */
    
  5. Cuando Magento este instalado en el localhost, hay revertir el archivo validation.js quitando los comentarios y dejando el código original.

Database server does not support the InnoDB storage engine

Error Database server does not support the InnoDB storage engine en Magento

Para solucionar este error abre el archivo app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php con un editor de texto, y en la línea 60 aproximadamente tenemos que reemplazar el siguente fragmento de código;

public function supportEngine()
{
    $variables = $this->_getConnection()->fetchPairs('SHOW ENGINES');
    return isset($variables['InnoDB']) && ($variables['InnoDB'] == 'DEFAULT' || $variables['InnoDB'] == 'YES');
}

por este otro:

public function supportEngine()
{
    $variables = $this->_getConnection()->fetchPairs('SHOW ENGINES');
    return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}

Muy importante: Hay que volver a dejar la función como estaba en el código original después de que la instalación se realice con éxito.
Otra opción sería copiar toda la estructura de directorios desde el pool core;
app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php
Hacia el pool local como se ve en la siguiente línea;
app/code/local/Mage/Install/Model/Installer/Db/Mysql4.php
De esta forma no es necesario revertir los cambios porque lo que ocurre es que estamos sobrescribiendo el archivo original situado en el core de Magento.

PHP Extensions “0” must be loaded

Magento PHP Extensions “0” must be loaded

La solución se trata de editar app/code/core/Mage/Install/etc/config.xml cerca de la línea 71 encontraremos el siguiente fragmento de código;

<extensions>
    <pdo_mysql/>
</extensions>

y lo reemplazaremos por este otro:

<extensions>
    <pdo_mysql>1</pdo_mysql>
</extensions>

Solucionado!! ya no deberia aparecer el error PHP Extensions “0” must be loaded de Magento.

Error Magento update index…

Si aparece el siguiente mensaje de error:

Magento update index “Invalid backend model specified: catalog/product_attribute_backend_startdate_specialprice”

tendremos que abrir la base de datos de esa tienda y ejecutar la siguiente consulta:

UPDATE `eav_attribute` 
SET `backend_model` = 'eav/entity_attribute_backend_datetime' 
WHERE `backend_model` = 'catalog/product_attribute_backend_startdate_specialprice';

Faltan extensiones PHP

Existen otros tipos de errores comunes de un servidor web con los que podemos encontrarnos al instalar cualquier CMS incluido magento, estos son los relacionados con las librerías de php.
En la mayor parte de los casos bastara simplemente con descomentar una línea en el archivo php.ini de nuestro servidor, para ello solo tendremos que quitar el ‘;’ del principio de la línea.
Si esto no funciona entonces tendremos que instalar la extensión manualmente cargando su dll. Más información sobre extensiones php.
Las extensiones de PHP generalmente se llaman php_*.dll (donde el asterisco representa el nombre de la extensión) y se localizan bajo la carpeta php/ext. En mi caso se ubica dentro del directorio de instalación de XAMPP.

Vamos a ver un ejemplo:

Error PHP Extension «mbstring» must be loaded

Buscamos dentro del archivo php.ini la linea:
;extension=php_mbstring.dll
y quitamos el comentario:
extension=php_mbstring.dll
Si sigue sin funcionar copiamos el archivo php_mbstring.dll en el directorio php/ext antes mencionado.

Finalmente aclarar que estas soluciones no tienen porque funcionar siempre. A mi me funcionan.
Espero que sea útil, te ahorre un montón de dolores de cabeza y te permita finalizar con éxito la instalación de Magento.

Un comentario en “Errores al instalar Magento en un servidor local

  • Fantastico post. Gracias por compartirlo…Espero màs…

    Saludos

    granota.net

Comentarios y opiniones

Puede que tarde en responder, se paciente.

*
*