Luis Molina

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

Posts Tagged ‘php

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

Enlaces rápidos

leave a comment »

Agosto, mes de vacaciones por excelencia en España… pero algunos no paramos. He aquí una pequeña lista de cositas que me han parecido interesantes últimamente:

Y esto es todo de momento. ¡Feliz verano!

Written by Luis Molina

7 agosto 2009 at 16:22

Publicado en Enlaces rápidos

Tagged with , , , ,

Enlaces rápidos

leave a comment »

Llevo semanas con algunos enlaces pendientes de comentar aquí en el blog, y como se me están acumulando y nunca encuentro el momento para dedicarles un tiempo tranquilo a cada uno de ellos, he decidido poner los enlaces todos juntos para que vosotros mismos les echéis un vistazo:

  • ¿Crisis? ¿Qué crisis? Un poco de sentido común en momentos de pánico.
  • Consejos para diseñar la página de inicio de un sitio web. Traduzco, rápida y libremente:
    • Ofrece contenido de calidad en la página de inicio.
    • Ve al grano.
    • Crea promociones para los visitantes/usuarios/clientes.
    • Cuida cada enlace, así como el número de ellos.
    • Cuida el diseño para que no se “rompa” dependiendo del navegador o dispositivo en que se cargue la página.
    • No te pases poniendo anuncios.
    • Haz que la página se cargue rápidamente.
    • Haz un diseño limpio en el que sea fácil encontrar los mensajes clave.
    • Dale a los usuarios sólo la información que necesitan.
    • Mantén un código HTML y CSS válido.
    • Crea buenas páginas de productos (páginas internas).
    • Mantén la confianza de los usuarios.
  • Plantilla para hacer análisis heurísticos de usabilidad.
  • Diapositivas sobre buenas prácticas de programación en PHP.
  • Lista con los errores de código más peligrosos.
  • Este último enlace es una reflexión que me pareció interesante y no tiene nada que ver con los temas aquí tratados hasta ahora… o sí.

Written by Luis Molina

15 marzo 2009 at 18:14

Publicado en Enlaces rápidos

Tagged with , , , ,

Jerarquía de “includes” en PHP

leave a comment »

Encuentro un hueco en el que daros un par de enlaces rápidamente. Tratan sobre un paquetito que nos ayuda a representar gráficamente toda una jerarquía de “includes” y “requires” a partir de un archivo.

Echadle un vistazo, que merece la pena usarlo para aclararse cuando tenemos un proyecto grande, o queremos elaborar la documentación.

He llegado hasta esto por una presentación de Rasmus Lerdorf sobre optimización de PHP, a la cual accedí a través de un enlace encontrado en un comentario de un artículo de Barrapunto.

Written by Luis Molina

11 diciembre 2008 at 11:04

Publicado en Artículos

Tagged with , ,

Consejos para mejorar la programación PHP

leave a comment »

En varios sitios he leído sobre técnicas varias para mejorar el código PHP, tanto en formato como en velocidad. El último de estos sitios ha sido Smashing Magazine a través de este artículo (en inglés), del que destaco algunos puntos:

  • Me parece básico que usemos los operadores de comparación correctamente: no es lo mismo $a == ‘1’ que $a === ‘1’. Este último conlleva también comparación del tipo de dato, y puede hacer que nuestro código sea ligeramente más eficiente porque el sistema no tiene que hacer conversiones de tipos antes de la comparación. Podéis echar un vistazo a las tablas de comparación de tipos PHP y al capítulo sobre los operadores de comparación del manual de PHP.
  • En mis inicios como programador toqué bastante C, y de ahí me viene la “manía” por simplificar código y por hacerlo más sencillo. A veces sé que eso puede hacer que el código sea algo más ilegible, pero bueno, es código y lo que tenemos que hacer es comprenderlo para saber qué hace; además, para eso sabemos usar los comentarios. Yo llevo bastante tiempo ahorrando sentencias else cuando uso algún valor por defecto:
// Uso normal de else
if ( alguna condicion ) {
$vble = ‘otra cosa’;
} else {
$vble = ‘valor por defecto’;
}
// Simplificando…
$vble = ‘valor por defecto’;
if ( alguna condicion ) {
$vble = ‘otra cosa’;
}
  • Otra técnica comentada en el artículo es la de eliminar las llaves sobrantes, aquellas que sólo contienen una sentencia. Yo, para contradecirme justo en lo que acabo de escribir en el punto anterior, de vez en cuando las uso para aumentar la legibilidad y el formateo visual del código.
  • Relacionado con lo de if-else y lo de quitar llaves está lo de usar el operador ternario (expr1) ? (expr2) : (expr3), que viene perfecto para hacer que algunas expresiones estén más integradas en el código y además se ahorre espacio.
  • Usar isset() en vez de strlen() para comprobar si una cadena de texto está vacía es hasta 5 veces más rápido, cosa que es posible por el tratamiento que hace PHP de la cadena vacía.

Comentan otros temas y en general todos van de hacer el código más rápido o de menos líneas, aunque siempre tendrá preferencia nuestro sentido común y el contexto en el que estemos desarrollando la aplicación.

Written by Luis Molina

28 noviembre 2008 at 22:08

Publicado en Artículos

Tagged with , , ,

Introducción: algo de historia

leave a comment »

Desde 1998 no he parado de trabajar en la web, pero ya antes tenía el gusanillo de llevar a cabo mis propios proyectos y siempre he estado metido en “líos” de diferente índole: ya fuera un trabajo de clase o una actividad en mis grupos scouts, organizando algún viaje con los amigos o haciendo sitios web para distintos clientes.

Ahora quiero lanzarme al mundo empresarial con mi propio negocio de consultoría web, por definirlo de alguna manera. Soy capaz de ofrecer un servicio integral de diseño y desarrollo de aplicaciones empresariales en entorno web, desde un sitio web sencillo que sirva como imagen corporativa hasta una compleja red de aplicaciones interconectadas entre sí que sirvan como plataforma completa de gestión de una empresa.

Ello se debe a mi experiencia durante los últimos diez años en el sector de las llamadas nuevas tecnologías, que por cierto siguen siendo inexplicablemente “nuevas” desde hace al menos 15 años. Mi primer contacto fue en el instituto haciendo programas en Pascal y luego Delphi, pasando luego al diseño de páginas web con cierta funcionalidad usando CGI en Perl hasta que llegué a PHP3 de la mano de un proyecto para montar una web de anuncios relacionados con el sector aeronáutico.

A partir de entonces sentí una enorme atracción por el horizonte que abría el uso de Internet, cosa que ahora no voy a descubrir aquí. Así que fui aprendiendo y trabajando, trabajando y aprendiendo, entre mis tareas de la Facultad de Informática, mis pinitos en casa durante noches y fines de semana en plan autodidacta, las webs para gente de mi entorno, cursos, fotocopias, pruebas y más pruebas con sus correspondientes errores y más errores, tropiezos y chascos y, cómo no, satisfacciones y alegrías por ir avanzando tanto en conocimientos como experiencia.

Luego llegó la posibilidad de trabajar en una editorial malagueña en la que tuve la oportunidad de desarrollar mis habilidades de periodista/escritor aficionado, ya que me encargaron la coordinación de una revista llamada “Webmaster” cuyos contenidos iban desde artículos técnicos o de diseño web hasta asuntos legales relacionados con Internet, pasando por temas como teletrabajo o comercio electrónico y alguna que otra columna de opinión. También llegamos a publicar artículos traducidos de una estupenda revista norteamericana conocida como “Web Techniques”. Gracias a los estupendos compañeros (y algunos aún amigos en la actualidad) que tuve en esta etapa me introduje en el mundo del diseño gráfico y web más a fondo, comenzando a tocar algo de Flash y otras herramientas de ilustración orientadas a la web.

Más o menos por aquella época de la revista (años 2000 y 2001) comencé a desarrollar proyectos web como freelance, el más importante de ellos en mi opinión el que hice (y aún realizo tareas de mantenimiento a día de hoy) para la Fundación Picasso de Málaga. Me gusta destacar de este trabajo la sección del Centro de Documentación ya que es posible consultar los fondos de los que disponen gracias a la herramienta que diseñé para publicar esos fondos en una base de datos MySQL accesible mediante PHP, realizando un buscador bastante completo para acceder a cualquiera de las categorías de las que disponen.

Luego vinieron otras webs como las de empresas de compra/venta de barcos de recreo, trabajos freelance para empresas del PTA (Parque Tecnológico de Andalucía, en Málaga), webs para cooperativas olivareras de Jaén… También vinieron muy malas experiencias como el haber trabajado para una empresa y que luego no te pague, cosa que viene muy bien para aprender a posicionarse e incluso a estimar de una manera distinta el trabajo realizado. También se aprende a calar a la gente.

En 2002 comencé a trabajar para una empresa en Marbella, de la que ahora me “despido” para montar mi negocio. Aquí hemos desarrollado un conjunto de aplicaciones en entorno web (plataforma Suse Linux, Apache, PHP, Oracle) para el principal cliente, Cash Converters España, que permite gestionar toda la cadena de franquicias en España y Portugal desde el punto de venta (cada una de las tiendas) hasta el nivel de decisiones operativas (la dirección de la cadena a nivel nacional). También he tenido aquí la oportunidad de formar a personal interno de la empresa en distintas áreas, como tecnologías web o gestión de bases de datos Oracle.

Estos seis últimos años han estado llenos de trabajo, aprendizaje técnico, desarrollo personal, ampliación de conocimientos, momentos de expansión y momentos de introspección, que me han llevado a la situación en la que me encuentro hoy: soy una persona emprendedora, con muchas ganas de trabajar porque además me gusta lo que hago, con interés en variados asuntos (desde arte hasta filosofía o psicología, además de la informática) y con ganas de usar mis conocimientos y mi experiencia para ayudar a que las empresas, es decir, las personas que las componen, puedan realizar sus labores con satisfacción, tranquilidad y confianza.

Written by Luis Molina

20 mayo 2008 at 16:58

Publicado en Artículos

Tagged with , , , ,