Luis Molina

tecnologías de la información, experiencias, conocimiento

Posts Tagged ‘wordpress

Enlaces rápidos

leave a comment »

Una recopilación de enlaces que me han parecido interesantes en esta última semana:

Anuncios

Written by Luis Molina

19 mayo 2013 at 17:27

Publicado en Enlaces rápidos

Tagged with , , ,

Configurar WordPress para varios servidores con un único fichero wp-config.php

with one comment

ejemplo de wp-config.php definiendo conexiones a varias bases de datos

Es una práctica común entre los desarrolladores web el tener varias versiones de un mismo sitio WordPress: versión local, versión en desarrollo, versión de pruebas, versión en producción, etc.

En caso de que no utilices un sistema de control de versiones (SVN, Git, etc.), aquí tienes una manera fácil de mantener un único fichero de configuración wp-config.php que contenga las distintas conexiones a la base de datos, en función del servidor donde se encuentre el fichero.

Edita el fichero wp-config.php y, al principio del mismo, reemplaza los datos de conexión que suelen venir predeterminados por estas líneas (como en la imagen superior):

if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') {
  // Entorno LOCAL
  define('DB_NAME', 'nombreBDlocal');
  define('DB_USER', 'nombreUSRlocal');
  define('DB_PASSWORD', 'contraseñalocal');
  define('DB_HOST', 'servidorlocal'); // normalmente, localhost
} else {
  // Entorno PRODUCCION
  define('DB_NAME', 'nombreBDpro');
  define('DB_USER', 'nombreUSRpro');
  define('DB_PASSWORD', 'contraseñapro');
  define('DB_HOST', 'servidorpro');
}

En cada constante aquí definida, tendrás que escribir los valores correspondientes de las conexiones a tus bases de datos.

Como ves, los parámetros de conexión a la base de datos se definen en función de la IP del servidor donde esté alojado el fichero wp-config.php.

Jugando con $_SERVER['SERVER_ADDR'] y varios if...else if... (o case...switch...) podrás contemplar los distintos entornos en los que se ejecute tu sitio web con WordPress.


Actualización 19/05/2013

Otra manera muy práctica de mantener el mismo wp-config.php en distintos servidores (distintos entornos de ejecución de WordPress) es guardar los datos de conexión a la base de datos de cada entorno en un fichero distinto. En el siguiente ejemplo, se tiene un entorno local de desarrollo y un entorno real de producción:

wp-config-varias-bbdd-2

El código que ponemos en wp-config.php es este:

if ( file_exists( dirname( __FILE__ ) . '/local-config.php' ) ) {
 // ENTORNO LOCAL - DESARROLLO
 include( dirname( __FILE__ ) . '/local-config.php' );
} else {
 // ENTORNO REMOTO - PRODUCCIÓN
 define('DB_NAME', 'dbbd');
 define('DB_USER', 'dbmy');
 define('DB_PASSWORD', 'dbpw');
 define('DB_HOST', 'localhost');
}

Y el contenido del fichero local-config.php es este:

<?php
/**
 * Datos acceso a base de datos local (desarrollo).
 */
define('DB_NAME', 'localdb');
define('DB_USER', 'localdbusr');
define('DB_PASSWORD', 'localdbpwd');
define('DB_HOST', 'localhost');

Si estás utilizando un sistema de control de versiones para tus desarrollos en WordPress, asegúrate de excluir el fichero local-config.php.

 

 

Written by Luis Molina

9 diciembre 2012 at 13:09

Publicado en Artículos

Tagged with , ,

Enlaces rápidos

leave a comment »

Seguimos…

Written by Luis Molina

30 enero 2012 at 20:49

Convertir de SQLite a MySQL

with 9 comments

convertir-sqlite-mysql

Aunque he intentado hacer funcionar de forma aceptable un WordPress con SQLite, finalmente el servidor donde lo alojaba no me facilitaba la tarea así que he decidido utilizar WordPress con MySQL, como toda la vida, aunque tenga que alojar la base de datos en un servidor externo.

Tras investigar  algo por Internet y darme algún cabezazo con imports/exports de SQL, estos son los pasos que he seguido para convertir una base de datos SQLite a MySQL (proceso también conocido como migración de SQLite a MySQL):

  1. Generar una exportación de la base de datos SQLite en un fichero SQL.
  2. Editar el fichero SQL generado para hacer los siguientes cambios:
    • Reemplazar AUTOINCREMENT por AUTO_INCREMENT.
    • Eliminar las comillas dobles en los nombres de los objetos, ya que MySQL no las contempla. Por ejemplo, hay que reemplazar “wp_posts” (incluyendo las comillas) por wp_posts.
    • En los campos que deban ser de tipo fecha/hora, reemplazar text not null default ‘0000-00-00 00:00:00’  por datetime not null. Fíjate en el not null: cámbialo si te conviene que sea null. Además, es posible que tú sí necesites algún valor predeterminado para algún campo de tipo datetime.
    • Eliminar el valor predeterminado (default) de los campos blob/text.
    • En general, repasar todos los campos que tengan formato text (generado por SQLite) ya que que algunos deberán cambiarse por datetime (como he explicado anteriormente) o por varchar.
    • Aunque yo no he tenido que hacerlo, en algún sitio he visto que hay que borrar todas las líneas donde aparezca sqlite_sequence.
  3. Una vez modificado y guardado el fichero (previa copia de seguridad, claro está 😉 ), importar este fichero SQL a la base de datos MySQL (por ejemplo, con phpMyAdmin).
  4. Fin.

Un ejemplo

A continuación muestro un ejemplo de migración de una tabla, lo que viene a llamarse “el antes y el después”:

Tabla wp_comments en SQLite (ANTES)

CREATE TABLE wp_comments (
 comment_ID integer NOT NULL PRIMARY KEY AUTOINCREMENT ,
 comment_post_ID integer NOT NULL default '0',
 comment_author blob NOT NULL,
 comment_author_email text NOT NULL default '',
 comment_author_url text NOT NULL default '',
 comment_author_IP text NOT NULL default '',
 comment_date text NOT NULL default '0000-00-00 00:00:00',
 comment_date_gmt text NOT NULL default '0000-00-00 00:00:00',
 comment_content text NOT NULL,
 comment_karma integer NOT NULL default '0',
 comment_approved text NOT NULL default '1',
 comment_agent text NOT NULL default '',
 comment_type text NOT NULL default '',
 comment_parent integer NOT NULL default '0',
 user_id integer NOT NULL default '0');

 

Tabla wp_comments en MySQL (DESPUÉS)

CREATE TABLE wp_comments (
 comment_ID integer NOT NULL PRIMARY KEY AUTO_INCREMENT ,
 comment_post_ID integer NOT NULL default '0',
 comment_author text NOT NULL,
 comment_author_email varchar(100) NOT NULL default '',
 comment_author_url varchar(200) NOT NULL default '',
 comment_author_IP varchar(100) NOT NULL default '',
 comment_date datetime NOT NULL ,
 comment_date_gmt datetime NOT NULL ,
 comment_content text NOT NULL,
 comment_karma integer NOT NULL default '0',
 comment_approved varchar(20) NOT NULL default '1',
 comment_agent varchar(255) NOT NULL default '',
 comment_type varchar(20) NOT NULL default '',
 comment_parent integer NOT NULL default '0',
 user_id integer NOT NULL default '0');

 
Pues nada más, espero que te sirva.

Written by Luis Molina

14 noviembre 2011 at 21:25

Publicado en Artículos

Tagged with , , , ,

Enlaces rápidos

leave a comment »

CSSDeskRecopilación de enlaces que me han resultado interesantes en los últimos tiempos:

 

Written by Luis Molina

11 octubre 2011 at 16:55

Publicado en Enlaces rápidos

Tagged with , , , ,