Cosas que me pasan con Linux, php, software libre...

Problemas al cambiar de dominio con la configuración del theme

Siguiendo los pasos para cambiar un blog wordpress de dominio me he encontrado con el problema de que no se respetaba la configuración del theme. Por más que miraba todo parecía correcto, toda referencia al dominio viejo estaba modificada pero no salían las modificaciones hechas, por ejemplo la imagen de cabecera.

Googleando he encontrado un post en del foro de soporte de wordpress que me ha dado la pista. Las opciones del tema se guardan en la tabla wp_options y algunos themes usan un sistema de guardado un tanto curioso. Guarda el valor de la opción y su número de caracteres, es decir, si la opción es por ejemplo: “no-background” guarda el número 13 al lado. ¿Qué hay que hacer? Pues modificar todos los númeritos que haya al lado de las opciones que contengan el dominio. Un ejemplo:

a:232:{s:12:”nirvana_side”;s:4:”2cSr”;s:17:”nirvana_sidewidth”;i:900;s:15:”nirvana_sidebar”;i:300;s:24:”nirvana_contentmargintop”;i:5;s:22:”nirvana_contentpadding”;i:0;s:15:”nirvana_duality”;s:4:”Wide”;s:14:”nirvana_mobile”;s:6:”Enable”;s:12:”nirvana_zoom”;i:0;s:15:”nirvana_hheight”;i:150;s:15:”nirvana_hcenter”;i:0;s:14:”nirvana_hratio”;i:0;s:18:”nirvana_siteheader”;s:11:”Custom Logo”;s:18:”nirvana_logoupload”;s:74:”http://xxxxxx.com/wp-content/uploads/2015/12/ayuntamientoErlaLogoTrans.jpg“;}

En todo ese chorizo está en negrita un número de caracteres y la variable a la que hace referencia.

¿Que he hecho? Pues desde phpmyadmin he buscado en la tabla wp_options todas los registros que en su option_name contengan el nombre del theme (LIKE %nombre_theme%) y a su vez tengan el nombre del dominio en option_value (LIKE %dominio%). En los registros que salgan hay que cambiar el número antiguo por el nuevo. Para no ir contando toda la variable basta con sacar la diferencia entre el dominio viejo y el nuevo y restar o sumar al número que salga.

He utilizado esta aplicación online para contar caracteres, que por cierto es mía… jeje.

Publicado en Personal, wordpress Etiquetado con: , ,

Cambiar de dominio un blog WordPress

Suelo necesitar de vez en cuando cambiar el dominio a una instalación WordPress. Es algo relativamente sencillo, lo primero es pasar los archivos de un dominio a otro, ya sea copiando de un directorio del servidor a otro, o descargando por FTP del dominio viejo y luego subiendo al nuevo. También puede hacer falta traspasar la base de datos. Eso no es problema, puede ser lento, pero no difícil.

Lo más complicado de la migración es cambiar la configuración de archivos y base de datos. Esto yo lo hacía guiándome por las recomendaciones del blog de Mario Guzmán, que lamentablemente ya no está online. Por suerte existe archive.org, web donde se puede encontrar un “historial” de internet. Apunto aquí los pasos necesarios:

Modificar el archivo wp-config.php que se encuentra en la raiz de la instalación con los nuevos datos de configuración (si han cambiado)

define(‘DB_NAME’, ‘basededatos’);
define(‘DB_USER’, ‘usuario’);
define(‘DB_PASSWORD’, ‘contraseña’);
define(‘DB_HOST’, ‘servidor’);
Modificar las url en la base de datos realizando las siguientes consultas de MySQL, desde phpMyAdmin, por ejemplo:
UPDATE wp_options SET option_value = REPLACE(option_value,’dominio_viejo’,’dominio_nuevo’);
UPDATE wp_posts SET post_content = REPLACE(post_content,’dominio_viejo’,’dominio_nuevo’);
UPDATE wp_posts SET guid = REPLACE(guid,‘dominio_viejo’,‘dominio_nuevo’);
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value,‘dominio_viejo’,‘dominio_nuevo’);
Y ya para acabar lo correcto sería redirigir las visitas del dominio viejo al nuevo usando un archivo .htaccess colocado en la raíz del dominio viejo con este contenido:
RewriteEngine On
RewriteRule ^(.*)$ http://dominio-nuevo.com/$1 [L,R=301]
Con esto debería ser suficiente.

Actualización:

Cómo solucionar posibles problemas con las opciones del theme al modificar el nombre del dominio en wordpress.

 

Publicado en wordpress Etiquetado con: ,

Borrar emails del mismo remitente de la cola de postfix

Si tenemos un atasco en la cola de postfix, por ejemplo por algún problema de spam, puede interesar eliminar todos los correos enviados desde la misma cuenta.

Para ello tenemos que ejecutar en consola el siguiente comando para ver los emails antes de borrarlos

postqueue -p |grep -v “^ ” | grep remite@dominio.com | awk ‘ { print $1} {print $7}’ | tr -d ‘*!’

Una vez seguros de lo que vamos a hacer podemos ejecutar el siguiente comando donde se indica que se eliminen esos emails

postqueue -p |grep -v “^ ” | grep remite@dominio.com | awk ‘ { print $1} {print $7}’ | tr -d ‘*!’ | postsuper -d –

Publicado en Correo, Linux Etiquetado con: , , ,

Nuevo tema instalado y WordPress actualizado

Llevaba atascado en este blog en la versión 2.6 de WordPress desde hace siglos, si no me equivoco era la última que no permitía la actualización con un click. Por miedo a dar este gran salto se fue dejando… hasta hoy.

Ha sido realmente fácil siguiendo las indicaciones de Recursos y Negocios de como actualizar WordPress manualmente. Aprovecho para agradecer su claro post con las instrucciones.

Aprovechando, he cambiado el tema, ya estaba un poco obsoleto, por uno más actual y “responsive” como su propio nombre indica: Responsive Theme. Sencillo y limpio. En principio no voy a tocar mucho porque me parece correcto tal cual.

Ahora toca configurar, probar plugins, optimizar para el posicionamiento… precisamente este post sirve como excusa para que se genere un sitemap y probar el plugin para SEO en WordPress Yoast SEO.

Seguimos investigando y configurando…

Publicado en Blog, Personal, SEO, wordpress Etiquetado con: , , , ,

Cambiar propietario y grupo a un enlace simbólico en linux

Si queremos cambiar el propietario y/ o el grupo de un enlace simbólico tenemos que añadir el parámetro -h a la orden chmod (o chgrp). Si no lo hacemos modificaríamos el archivo original en vez del enlace.

chmod -h nuevo_propietario enlace_simbolico

chmod -h nuevo_grupo enlace_simbolico

Publicado en Linux

Cambiar todas las apariciones de una cadena de texto por otra en un campo de una tabla de MySQL

Si queremos modificar todas las apariciones de una cadena de texto por otra en un campo de una tabla de una base de datos MySQL bastaría con realizar esta consulta, por ejemplo desde phpmyadmin:

UPDATE tabla
SET campo = REPLACE(campo,’cadena_a_reemplazar‘,’nueva_cadena‘);

Esto es útil, por ejemplo, en una migración de url de wordpress. Para cambiar la ubicación de las imágenes del contenido de los posts.

Publicado en Mysql

Saber id del último registro insertado de una consulta INSERT en Mysql con PHP

Existe una función en PHP que sirve para saber el campo AUTO_INCREMENT (en caso de que exista) del último registro de la última consulta INSERT realizada. Viene muy bien para evitarnos hacer un SELECT extra.

mysql_insert_id()

Hay que destacar que esta función solo nos funcionará si nuestro campo AUTO_INCREMENT es de tipo INT. Si fuera BIGINT nos podría dar un valor erróneo.

Publicado en Mysql, Php

Limitar el envío de emails por cuenta en Postfix

Para limitar el envío de emails realizado por cada cuenta de correo que tenemos en Postfix basta con añadir estas 2 líneas en el fichero de configuración /etc/postfix/main.cf

anvil_rate_time_unit=20m # tiempo en el que se cuentan los mensajes enviados
smtpd_client_message_rate_limit=50 # numero de mensajes permitidos en el tiempo indicado arriba

Reiniciamos postfix

/etc/init.d/postfix restart

Publicado en Correo, Linux, Seguridad

Hacer funcionar php usando Apache mod_php como modo de ejecución en Virtualmin

Al cambiar el modo de ejecución de Apache en Virtualmin, para aumentar el tiempo de ejecución de los scripts, veo que no se ejecutan los archivos php, saca el código por pantalla.

La solución la encuentro en este hilo del foro de Virtualmin, en resumen:

Abrir el archivo  /etc/apache2/mods-enabled/php5.conf y “descomentar” las 2 líneas de SetHandler

Ahora ya reiniciar Apache y solucionado.

Publicado en Apache, Php, Virtualmin

Cambiar formato del login de las nuevas cuentas de correo en Virtualmin

Por defecto, Virtualmin crea los usuarios de correo con la forma usuario.dominio. Sin embargo, es más fácil para los usuarios utilizar el formato usuario@dominio para hacer login.

La manera de cambiarlo, solo para los nuevos usuarios que creemos, es ir a:

System Settings / Server Templates / Mail for domain

Allí cambiar a nuestro gusto la opción: Format for usernames that include domain

Publicado en Correo, Linux, Virtualmin

Archivo