Trasladar una tienda Prestashop de un hosting/dominio a otro

Prestashop a partir de 1.4/1.5

Los pasos a seguir para conseguir esta tarea son los siguientes:

1. Realizar backup de la base de datos de la tienda que se desea migrar:
mysqldump -u [usuario] -p -a [nombre_de_la_bd] > /ruta/backup.sql

2. Copiar los ficheros de nuestra tienda a la nueva ubicación.

3. Abrir el fichero /nueva_ubicacion/config/settings.inc.php y editar las líneas correspondientes a la definición de las variables __PS_BASE_URI_, _DB_NAME_, _DB_SERVER_, _DB_USER_ y _DB_PASSWORD_ para que se ajusten a la nueva ubicación y a la nueva base de datos.

4. Crear una nueva base de datos vacía e importar en la misma el backup previamente realizado.
mysql -u [usuario] -p -D [bd_nueva] < /ruta/backup.sql

5. Dar permisos al usuario designado en el paso 3 para que tenga acceso total a la nueva base de datos
grant all on [bd_nueva].* to [usuario]@localhost identified by "[contraseña]";
donde [usuario] y [contraseña] deben coincidir con los datos introducidos en el fichero settings.inc.php del paso3.

6. Nota: Este punto sólo es válido para Prestashop 1.3. Para 1.4 y 1.5 lee más adelante, el apartado actualizado el 20/03/2013.
Editar el valor de la variable de configuración PS_BASE_URI en la base de datos, cambiándolo por el de la nueva ubicación, que debe coincidir con el valor dado a la variable __PS_BASE_URI_ en el fichero settings.inc.php del punto 3.
update ps_configuracion set value="[nueva_ubicación]" where name="PS_BASE_URI";

7. Eliminar los archivos de la tienda de la ubicación original, así como su base de datos asociada.

Y listo, ya tenemos nuestra tienda en la nueva ubicación. Por supuesto se presupone que en la nueva ubicación ya hay un servidor web con php y mysql levantados.

Estas instrucciones son válidas también para clonar una tienda. En este caso simplemente basta con omitir el paso 7, y si alojamos el clon en la misma máquina que la tienda original, no es necesario dar de alta un nuevo usuario/contraseña para gestionar la BD, por lo que en el punto 3 sólo habría que modificar los 2 primeros parámetros y el grant hacia la nueva BD debería darse al usuario antiguo.

Para migrar una BD de prestashop 1.5 es necesario realizar algunos cambios más:

  1. update ps_configuration set value="[nuevodominio.tld]" where name="PS_SHOP_DOMAIN" or name="PS_SHOP_DOMAIN_SSL";
  2. update ps_shop_url set domain="[nuevodominio.tld]",domain_ssl="[nuevodominio.tld]";
  3. Reemplazar en el .htaccess todas las referencias al antiguo dominio por el nuevo.

Si no se realizan estos cambios, la tienda nueva redireccionará a la URL de la tienda antigua.

Fuente: Existo

Separar archivos XML importados de WordPress

Generalmente me encuentro que cuando realizas una exportación de datos WordPress de algún sitio con cierto recorrido, la base de datos ocupa generalmente más de lo que el propio servidor permite que importes de nuevo, en caso de problemas.

Para esos casos y siempre que no tengas acceso ssh a tu servidor puedes usar un software separador o splitter de archivos XML en las «megas» que tu consideres cada uno e importar uno a uno dichos archivos.

wxr-splitter

Solucion OSX: WXR File Splitter

wxr-file-splitter

Solución Windows: WordPress WXR File Splitter

Solucion Linux: comando  xml_split (+info)

 

Migrar un WordPress de hosting/dominio

Al desarrollar proyectos sobre WordPress suelo hacerlo en mi hosting personal, con acceso restringido y no indexando durante el desarrollo, para luego trasladarlo o migrarlo al hosting o alojamiento / dominio del cliente una vez finalizado dicho desarrollo. Voy a tratar de relatar paso a paso lo que debemos hacer para trasladar de manera correcta todo el proyecto.

En primer lugar copiamos todo el contenido de archivos de nuestro servidor a el nuevo dominio via FTP, todo el sistema wordpress con sus plugins y plantilla. Recomiendo No copiar o modificar el archivo wp-config.php de nuestro sistema antes de copiarlo. Para ello debes descargar todo el contenido en tu equipo local, para luego re-subirlo a el nuevo hosting.

Aparentemente si accedemos al nuevo dominio veremos que todo funciona a la perfección, hasta que te percatas que lo que esta haciendo es acceder a nuestra base de datos de pruebas, y por consiguiente a nuestro dominio. Yo personalmente recomiendo no copiar o modificar el archivo wp-config.php de nuestro sistema antes de copiarlo para que esto no suceda, para proteger así nuestras contraseñas personales si fuera el caso.

El problema es que WordPress guarda las direcciones de forma absoluta, en la base de datos. Con lo cual debemos también trasladarla y modificarla en el nuevo hosting/dominio.

En estos pasos se sobre-entiende que el dominio/hosting del cliente ya esta operativo y conocemos los accesos a phpmyadmin de ambos servidores (antiguo/nuevo).

phpmyadmin-wordpress-database

En el phpmyadmin de nuestro antiguo servidor, usaremos la pestaña EXPORTAR seleccionando TODAS LAS TABLAS  y en el apartado Estructura marcar la opcion «add DROP TABLE / VIEW / PROCEDURE / FUNCTION»

2

Después marcaremos la opción de grabar como archivo y elegimos la compresión que mas nos guste, con lo cual generara una copia en nuestro equipo local de toda la base de datos.

3

Importamos ahora desde el phpmyadmin del nuevo alojamiento usando la pestaña IMPORTAR y seleccionando el archivo de la base de datos exportada en nuestro equipo local. Este paso es mas sencillo y tampoco merece mas explicaciones…

4

Ya tenemos archivos y base de datos en el nuevo alojamiento, ahora debemos editar el archivo wp-config.php para modificar o añadir si  los hubieramos borrado los datos de acceso a la base de datos recien importada ya que puede no tener el mismo nombre, usuario y contraseña, incluso el host puede variar:

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //

/** El nombre de tu base de datos de WordPress */

define('DB_NAME', 'nombredelabasededatos');

/** Tu nombre de usuario de MySQL */

define('DB_USER', 'usuariodelabasededatos');

/** Tu contraseña de MySQL */

define('DB_PASSWORD', 'passworddelabasededatos');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */

define('DB_HOST', 'localhost');

Antes de probar el nuevo sitio, debemos realizar unas modificaciones que permitiran a el nuevo hosting acceder correctamente a el nuevo dominio. Para ello usaremos la solapa SQL del nuevo phpmyadmin con las siguientes consultas de actualización:

nota: el nombre de la tabla puede variar y además es conveniente por motivos de seguridad (por ejemplo, en lugar de wp_options podria ser pepe_options…)

En primer lugar actualizamos la nueva URL del sitio al nuevo dominio:

UPDATE wp_options SET option_value = 
replace(option_value, 'http://www.miantiguodominio.com', 'http://www.nuevodominio.com') 
WHERE option_name = 'home' OR option_name = 'siteurl';

A continuacion buscamos coincidencias dentro de los post que hagan referencia al antiguo dominio para tambien actualizarlo.

UPDATE wp_posts SET guid = replace(guid, 'http://www.miantiguodominio.com',
 'http://www.nuevodominio.com');

Después remplazamos todos los enlaces que tenga el contenido, para no tener errores 404.

UPDATE wp_posts SET post_content = 
replace(post_content, 'http://www.miantiguodominio.com', 
'http://www.nuevodominio.com');

No nos olvidemos de las posibles referencias de los campos personalizados en caso de usarlos en nuestro proyecto:

UPDATE wp_postmeta SET meta_value = 
replace(meta_value, 'http://www.miantiguodominio.com', 
'http://www.nuevodominio.com')

Con estas «queries» debería ser suficiente, aunque en algunos casos me ha sucedido que algún plugin usa direcciones de forma absoluta con lo cual toca modificar la tabla en concreto, lo mejor es hacer una búsqueda en toda la base de datos con la cadena «www.miantiguodominio.com» desde la solapa BUSCAR y phpmyadmin nos indicará qué tablas de la base de datos y cuantas coincidencias existen en cada una de ellas, con lo cual te facilita mucho el modificarlas.

 

Cuando las tablas html no se adaptan a los span de bootstrap

En el ultimo proyecto web decidí usar bootstrap como base del theme wordpress a realizar y lo cierto es que tengo que agradecer a Pelayo Maojo su descubrimiento, creo que tras g960, este framework ademas de popular tiene una curva de aprendizaje similar a 960gs.

Trabajando con tablas me encontré con un problema, estas no se adaptan segun que media queries a el ancho «pactado» por los class=»spanX» de bootstrap, a lo que encontré una solución css rapida y que funciona en todos los navegadores.

Basta con añadir a la class o id de tu tabla:

.mitabla {
table-layout: fixed;
word-wrap: break-word;
}

y las tablas se ajustan al/los «span» sin problemas.

Script recordatorio y no (demasiado) intrusivo para recordar a los usuarios de tu web que no tienen actualizado el navegador

Muchos usuarios continúan usando navegadores muy antiguos y desactualizados – la mayoría de ellos sin una razón particular. Cambiar a un navegador más reciente es mejor para ellos y para ti como diseñador web.

Tan solo deberemos incluir una pequeña porcion de codigo javascript en nuestro sitio web para que actue segun acordemos (podemos elegir sobre que navegadores actuar independientemente unos de otros, copiando el codigo que necesitemos).

Nuestros visitantes con navegadores no actualizados serán informados por una pequeña barra no molesta, que su navegador no está actualizado y que es recomendable actualizarlo, tal y como vemos en la imagen superior, remitiéndolos a una página informativa.

En caso de que el usuario haga caso omiso a esa advertencia el mensaje no se volverá a mostrar, al menos durante un tiempo.

Aparte del codigo que podemos generar en su web, tenemos la opcion de usarlo a modo de plugin para los gestores de contenido más populares:

 

  • WordPress (aleman)
  • TYPO3
  • TYPOlight (aleman)
  • vBulletin
  • concrete5
  • MODx
  • Drupal

Este servicio es una oportunidad para informar a tus visitantes de manera no molesta que deben cambiar a un navegador más reciente, ademas de una oportunidad de hacer evolucionar los navegadores contribuyendo así a el uso de los estándares actuales.

Enlace: http://www.browser-update.org/

mypermissions.org: Detecta y gestiona quién puede acceder a tus datos.

Conozco a muchos usuarios escandalizados por los problemas de privacidad y seguridad actual de la mayoría de las redes sociales, por no decir todas. Pero es que ellos mismos dan acceso a sus datos privados a terceros tan solo con probar o aceptar probar cualquier funcionalidad, aplicación, dentro de sus propios perfiles.

Generalmente, lo que pasa a continuación es que ese acceso queda vigente, y se mantiene en el tiempo, provocando situaciones tales como tweets que no han publicado ellos, y no sabemos que aplicación los ha generado!!!

Con mypermissions.org, pagina que nos muestra los diferentes enlaces a la configuración de seguridad de nuestros perfiles en las distintas redes sociales, podremos detectar y gestionar quien accede a nuestros datos personales. Yo mismo me he llevado una sorpresa al ver la cantidad de aplicaciones que se sirven de mis datos.

Si a esto le añadimos un recordatorio mensual con ifttt tenemos una gran solucion administrativa de permisos en nuestras redes sociales a un par de clicks!

Enlaces: mypermissions.org , ifttt

Tweet&Get it ! – Optimizando tus recursos a través de twitter

Tweet & Get it! es un interesante plugin para WordPress que nos llega de  mano de Viuu , mas bien conocidos por sus fondos de pantalla para Twitter y que nos ayudará a generar un poco mas de tráfico en la web en la descarga de los recursos que ofrecemos para descarga en nuestro sitio web o blog. Esto lo consigue no mostrando la descarga correspondiente hasta que no tuiteamos sobre lo que queremos descargar e invitando a los seguidore a seguir la cuenta de Twitter del nuestro sitio.

Una vez instalado el plugin en nuestro blog, el mismo permite generar un botón de descarga que contendrá el archivo (ya sea canción, ebook, PDF, Excel, Word o recurso web)  que estará disponible para el usuario, cuando envíe un tweet anunciando la descarga y siga la cuenta del sitio del que se descarga dicho archivo. Le veo ciertos problemas de seguridad subsanables facilmente, como por ejemplo la ruta de subida automatica, ya que te publica en un directorio superior a «uploads» dejando al descubierto carpetas que no deberian, nada como añadir a esa carpeta un index.php «silencioso» para arreglarlo…

El crecimiento de followers utilizando esta tecnología es prácticamente exponencial, ya que cualquier visitante a nuestro sitio que desee comenzar a consumir lo que le ofrezcamos, tendrá obligatoriamente que promocionarnos para descargar lo que quiere, de esa manera nos aseguramos un cierto crédito sobre lo que ofrecemos evitando usuarios pasivos.


[tweegi-button name=»Twitea y descarga»]

Aqui os dejo una prueba de funcionamiento del boton. Pulsa justo en el boton que hay encima de este párrafo y comprenderas perfectamente el funcionamiento del plugin al momento! Descargarás un archivo txt de prueba, pero para ello deberás twittear antes…

 

Enlace a la web del Plugin : Tweet&Get it!

STUXNET – Anatomía de un Virus informático

STUXNET es un virus malo maloso, A mediados de junio de 2010 la compañía VirusBlokAda informó de su existencia, y se han fechado parte de sus componentes en junio de 2009.  El gusano-virus-llámale-x tiene un ataque inicial que parece centrarse en Irán, desde entonces la infección ha ido expandiéndose por distintos países llegando a infectar unos 50.000 sistemas de control industrial por todo el mundo.

Esta espectacular infografía ha sido producida por el programa de TV HungryBeast de la ABC Australiana y explica de manera muy gráfica qué es STUXNET:

[iframe: src=»http://player.vimeo.com/video/25118844″ width=»589″ height=»332″ frameborder=»0″ ]

«Tabla periódica» para desarrolladores de Google

A veces una imagen es la mejor manera de ver lo que ofrece un servicio y ese es el caso de esta infografía que muestra las API de Google como una tabla periódica.

Las diferentes APIs están organizados por categoría de color. Si pasas el ratón sobre una categoría se sombrean las aplicaciones con cierta relacion entre ellas y, por supuesto, cada API en la tabla tiene un enlace a su pagina correspondiente.

Enlace: Tabla Periodica Google Code

Visto en: Genbeta

Pequeñas cosas que hacen grandes otras