Magento, hacer una copia de un sitio a otro en 10 minutos sin morir en el intento [Solucionado]

Bueno, pues como los que queremos hacer una copia de un dominio a otro a veces nos topamos con cosas como que se nos hace imposible echarlo a andar todo como toca, pues bien, si tienes problemas para copiar tu tienda a un entorno de pruebas estos son los pasos a seguir (sobreentiendo unos conocimientos básicos del tema):

  1. copiar todos los archivos
  2. dumpear base de datos
  3. cargar base de datos
  4. modificamos la tabla core_config_data los dos registros que apuntan a la url vieja por la url nueva
  5. modificar app/etc/local.xml y poner los datos de la nueva db
  6. eliminar use_cache.ser
  7. crear un nuevo y vacio use_cache.ser y darle permiso 666
  8. eliminamos el contenido de /var/cache/ y le damos permiso 777 a esta carpeta
  9. le damos permiso 777 a la carpeta media
  10. volver a respirar con calma y probarlo

Una vez hecho todo esto (que a lo sumo no tiene que llevarte más de 10 minutos siendo lo que más cuesta copiar los archivos) debería funcionar todo correctamente.

[Magento] Invalid id or tag ‘’ : must use only [a-zA-Z0-9_] [Solucionado]

Si recibimos un error al crear un layout personalizado para nuestra tienda magento similar al siguiente:

Invalid id or tag ‘’ : must use only [a-zA-Z0-9_]
Trace:
#0 \lib\Zend\Cache\Core.php(545): Zend_Cache::throwException(’Invalid id or t...’)
#1 \lib\Zend\Cache\Core.php(564): Zend_Cache_Core::_validateIdOrTag(’’)
#2 \lib\Zend\Cache\Core.php(322): Zend_Cache_Core::_validateTagsArray(Array)
#3 \app\code\core\Mage\Core\Model\App.php(1045): Zend_Cache_Core->save(’saveCache()
#6 \app\code\core\Mage\Core\Controller\Varien\Action.php(265): Mage_Core_Model_Layout_Update->load()
#7 \app\code\core\Mage\Cms\Helper\Page.php(83): Mage_Core_Controller_Varien_Action->loadLayoutUpdates()
#8 \app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), ‘home-german’)
#9 \app\code\core\Mage\Core\Controller\Varien\Action.php(376): Mage_Cms_IndexController->indexAction()
#10 \app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(248): Mage_Core_Controller_Varien_Action->dispatch(’index’)
#11 \app\code\core\Mage\Core\Controller\Varien\Front.php(158): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 \app\Mage.php(459): Mage_Core_Controller_Varien_Front->dispatch()
#13 \index.php(65): Mage::run()
#14 {main}

Lo que debemos hacer es seguir 2 simples pasos, el primero será buscar nuestro archivo use_cache.ser (que puede que no tengamos si lo hemos trasteado anteriormente).

app/etc/use_cache.ser

1.- en caso de no tenerlo lo crearemos, si lo tenemos pasamos al punto 2

cd app/etc/use_cache.ser
touch use_cache.ser

2.- y ahora le cambiaremos los permisos de escritura

chmod 666 use_cache.ser

(es muy frecuente encontrar el problema por haber puesto permisos 777 que son incorrectos para este archivo).

Una vez ya tenemos el archivo bien configurado, nos vamos a ir al fichero en el que agregamos nuestro layout, en este caso

cd app/local/local.xml

y buscamos la parte del código, por ejemplo:

<cms>
    <layouts>
        <redirect>
            <label>Limpio</label>
            <template>page/0column.phtml</template>
        </redirect>
    </layouts>
</cms>

Pues bien, el problema reside en que hay que definir una etiqueta layout, con lo que quedaría así:

<cms>
<layouts>
    <redirect>
        <label>Limpio</label>
            <template>page/0column.phtml</template>
            <layout_handle>page_0column</layout_handle>
        </redirect>
    </layouts>
</cms>

Veremos que el nombre sería page/0column.phtml = page_0column si tenemos page/mitemplate.phtml pondremos page_mitemplate.
Con esto nos debería quedar resuelto el problema de código, ahora solo nos queda irnos a la administración y refrescar el caché, la próxima vez que entremos en la página que nos daba error debería funcionar.

Magento: error message – Notice: Undefined index: 0 app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92 [Solucionado]

Para solucionar este error después de una migración (normalmente), entra en la base de datos con ssh o phpmyadmin (o el que te parezca) y realiza las siguientes acciones:

busca la tabla core_store y core_website y en el registro con nombre admin, cambia la id a 0 (lo normal es que sea un 2)

Una vez hecho esto ya debería funcionar sin problemas.

Las imágenes no se muestran en el frontend tras migrar de servidor magento [Solucionado]

Si acabas de migrar magento de un servidor a otro, o incluso de dominio en el mismo servidor, y las imágenes te aparecen perfectamente en el panel de administración, se suben, se muestran y no tienes problema con ellas, pero sin embargo al ver las imágenes en el frontend, te sale la imágen predeterminada para cuando no tiene imágen este producto, el problema es del modo seguro de php.
Solución:

quitar el modo seguro de php php safe_mode off

Poner stock a 0 Magento mysql [SOLUCIONADO]

Entramos en el administrador de mysql preferido y conectamos a nuestra base de datos. Una vez hecho esto ejecutamos estas consultas:

UPDATE cataloginventory_stock_status SET stock_status = ’0′ WHERE stock_status > 0;
UPDATE cataloginventory_stock_status SET qty = ’0′ WHERE qty > 0;
UPDATE cataloginventory_stock_item SET qty = ’0′ WHERE qty > 0;

Aumentar la velocidad de tu magento con .htaccess

De todos es bien sabido que una instalación limpia de magento con los plugins que sean y los estilos que vayas creando, themes y demás, se convierte en un “culo pesado” a la hora de correr, pues bien, para mejorar el rendimiento del magento, trae de por sí la opción de habilitar la compresión de gzip que según se ha comprobado mejora la velocidad más de un 200%.

Para optimizar tu magento solo tienes que editar el archivo .htaccess y en la parte del served files compression dejarla como el siguiente ejemplo:

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don’t compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary

# enable resulting html compression
php_flag zlib.output_compression on

Magento: Actualizar por ssh incluso si da error o nothing to install. [SOLUCIONADO]

Normalmente es por si tienes apache funcionando como modulo PHP pero no debería tener problema nadie. Una vez tengas la forma que te funciona, hazlo todas las veces de la misma forma en futuras actualizaciones via SSH.

1ª opción. Hay que entrar en el ssh, entrar en la carpeta de magento y luego ejecutar los siguientes comandos:

rm -rf downloader/pearlib/cache/ downloader/pearlib/download/*
./pear upgrade-all
rm -rf downloader/pearlib/cache/ downloader/pearlib/download/*

2ª opción. Si se recibe un mensaje que dice nothing to update, probar con esto:

./pear mage-setup .
./pear install -f magento-core/Mage_All_Latest-stable
rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*

Con una de estas dos soluciones deberia funcionar, UNA. Como sugerencia diré que hay que probar la primera y en caso de que no vaya la segunda.

Magento: La administración deja de funcionar al poner ruta personalizada [SOLUCIONADO]

Magento: Admin doesn’t work when i change the predefined admin path to my customized one.

He tenido un problema al cambiar la ruta del magento. La administración ha dejado de funcionar correctamente. Después de probar varias soluciones lo que he averiguado es que los campos de la base de datos que utiliza para definir su configuración no es como en otros scripts, que está ahí desde que se instala, sino que este lo crea cuando tu intentas configurarlo. Por ello la solución no es poner a 0 los valores sino borrar completamente dichos campos de la base de datos.
Los campos están localizados en la siguiente tabla: core_config_data.

Lo que tenemos que hacer es entrar en la base de datos con phpmyadmin o algún tipo de programa de gestión de base de datos mysql y borrar en dicha tabla los siguientes registros:

admin/url/use_custom
admin/url/custom
web/secure/base_url
web/unsecure/base_url

Como lo crea el Magento sobre la marcha no pongo que tengan una id determinada por que para cada instalación varía dependiendo de lo que has hecho antes de tocar eso. Recuerda, solo tienes que ELIMINAR los registros, no vaciarlos.

Magento: Cambiar url de admin

Esto es bastante simple, si quieres cambiar la url de admin para que en lugar de tudominio.com/admin sea tudominio.com/otraurl solo tienes que cambiar una palabra en un archivo.

entra en la administración del magento y luego entra en

Sistema -> Caché Management

Ahí desactiva todos los caches y dale a guardar.

Abre el archivo app/etc/local.xml

localiza la línea donde pone

     <admin >
    <routers >
    <adminhtml >
    <args >
    <frontName ><![CDATA[admin]]></frontName >
    </args >
    </adminhtml >
    </routers >
    </admin >
Modifica lo siguiente por la url que quieras que sea:
<!--[CDATA[admin]]-->
por ejemplo
<!--[CDATA[otraurl]]-->
Una vez hecho esto accede al panel de admin con la nueva url y puedes volver a activar el cache.
Si has intentado modificar la ruta de admin desde el panel de admin y no puedes entrar en la administración aquí está la solucion al problema.