Migración de hosting

Ya hacía tiempo que quería cambiar de hosting, y he aprovechado estas fechas tal señaladas para realizar la migración de mi web de un proveedor de hosting a otro. Me he decidido por 000webhost.com, después de pasar los últimos 2 años con 1and1, en su plan de bienvenida.

Durante estos dos años en 1and1, no he tenido problemas, a excepción del acceso con cliente FTP, que se ha llegado a hacer tedioso e incomprensiblemente lento y “fallón”.

En cuanto al nuevo proveedor, 000webhost.com, para mis necesidades tiene sus ventajas e inconvenientes. Como ventaja principal, tiene un plan gratuito que parece tener buena pinta. Como desventaja, su utilidad fantástico para la instalación «sencilla» de programas como «WordPress» no funciona, y lleva así un buen tiempo (tanto, que empiezo a pensar que únicamente les funciona el fantástico a los usuarios con cuentas de pago).

En cualquier caso, para la migración manual del WordPress, he seguido estos pasos:

  1. Descargar la última versión de todos los archivos de WordPress de mi antiguo servidor.
  2. Realizar un backup de la base de datos con un el plugin de wordpress wp-database-backup (que ha resultado no funcionar).
  3. En el nuevo hosting, crear una base de datos mysql cualquiera desde el cPanel de 000webhosts, para alojar la base de datos de Wordress (al finalizar la creación aparece el resumen de los detalles que necesitaremos para la instalación manual de Wordress).
  4. Subir por FTP todos los archivos de WordPress al nuevo servidor.
  5. Modificación del archivo config.php de WordPress, para usar los detalles de la base de datos creada en el punto 4, siguiendo estas indicaciones.
  6. Subir el archivo config.php al servidor.
  7. Ejecutar https://helloit.es/wp-admin/install.php
  8. Seguir el asistente, para al finalizar, tener nuestro nuevo blog vacío pero funcionando.
  9. Entrar con phpMyAdmin a la administración del antiguo blog, y realizar un backup por defecto de las tablas de WordPress.
  10. Editar la consulta sql generada para reemplazar todas las alusiones a mi anterior hosting por el nuevo (buscando http://s229103401.mialojamiento.es y reemplazando por https://helloit.es). Eliminar todas las querys del tipo CREATE TABLE para dejar únicamente las del tipo INSERT INTO.
  11. Entrar con phpMyAdmin a la administración del nuevo blog, y vaciar (que no eliminar) todas las tablas de la base de datos de WordPress (pero sin remover la base de datos).
  12. Ejecutar la sentencia sql modificada con el backup del blog.

Después de realizar todos estos pasos, he conseguido migrar el blog de un hosting a otro, al parecer, con éxito. Finalmente, he necesitado modificar mi registro DNS para que mi dominio apunte a la ip del nuevo servidor.

Ahora tocará postear, más a menudo 🙂

– Toc, toc. -¡Ocupado!

Busy Hace poco me llamaron diciendo que una determinada página web no funcionaba. Efectivamente así era. Entramos en el servidor web en cuestión (Windows con IIS) y probamos de ver la página de bienvenida del IIS, que tampoco funcionaba. Después de algunas comprobaciones, vimos que teniendo el servicio IIS parado (y por tanto sin tener la web publicada), el puerto 80 estaba ocupado por otra aplicación. ¿Pero, por cual? Lo único que sabía, gracias a netstat -an era que efectivamente nuestro puerto 80 estaba escuchando.

Para descubrir qué aplicación nos estaba fastidiando el puerto 80, bajé una aplicación de Microsoft, llamada TCPView , que no nos sirvió para nada. La verdad es que es una herramienta gráfica, que refresca en tiempo real las conexiones de la máquina, pero que no nos mostraba nada sobre determinados puertos, entre ellos, el puerto 80.

Navegando llegué a esta página, donde explicaban como usar netstat para sacar el identificador del proceso (pid) correspondiente a cada conexión. Si lo juntamos con el comando "find", podemos sacar únicamente por pantalla las conexiones que están en estado "escuchando".

netstat -ano | find /i "listening"

Una vez hemos identificado el pid del proceso que nos tiene el puerto 80 ocupado, podemos utilizar una pequeña herramienta llamada PUList , que viene con el Windows 2000 Resource Kit, pero que podemos bajar de forma totalmente independiente (aunque atención, nos pedirá validar Windows). En el ejemplo (sacado directamente de la página del autor del post original), querremos buscar el nombre del proceso (que es lo que devuelve pulist) con pid "6372"

pulist |find /I "6372"

He de decir que el comando find, solo nos ayudará a acotar las salidas de los comandos que realmente necesitamos, que son "netstat -ano" y "pulist".

Con esto podremos identificar el proceso, y hacer una búsqueda en google para saber más sobre él, o directamente, abrir el administrador de tareas para finalizar dicho proceso.

Flickr! Foto por Alaskan Dude

¡Argh! ¡No funciona Internet!

Fear ¿Qué pasa cuando llegas a la oficina y…? ¡argh! ¡No funciona Internet ! Muchas cosas se te pasan por la cabeza, pero cuando descubres que tampoco responde a ping el servidor dns interno… La cosa cambia.

Ya no es un problema de conectividad o de red, que puede ser debido al switch, firewall, router, cables, ISP, etc. La cosa se centra únicamente en el servidor dns. Ese es el momento de levantarse e ir a la sala de servidores a mirar qué pasa (recordemos que el servidor no responde, así que tampoco debería funcionar el control remoto: no hay más remedio que levantarse).

Una vez en el cpd, se agradece haber etiquetado todos los servidores, y más aún ver que el servidor dns no tiene la luz encendida… ¿¡está apagado!? Pues sí, ese es el problema.

Después de encenderlo y comprobar que todo vuelve a la normalidad, después de este acto casi heroico que ha requerido de esta infinidad de conocimientos técnicos (léase, apretar el botón de encendido), toca ver qué ha pasado.

En los logs de Windows del "Event Viewer " del servidor, dentro de "System Logs " se podrá observar cuándo se apagó y cuando ha vuelto a encenderse. Por ejemplo, el último evento registrado en los logs antes de apagarse, dice "The Event log service was stopped ". Mirando un poco antes, se observa como se van deteniendo algunos servicios hasta que se llega a una entrada que tiene como origen "Windows Update Agent ". Examinando dicha entrada, se aprecia la siguiente descripción:

Restart Required: To complete the installation of the following updates, the computer will be restarted within 5 minutes:
– Cumulative Security Update for Internet Explorer 6 Service Pack 1 (KB963027)
– Security Update for Windows 2000 (KB959426)
– Security Update for Windows 2000 (KB923561)
– Windows Malicious Software Removal Tool – April 2009 (KB890830)
– Security Update for Windows 2000 (KB960803)
– Security Update for Windows 2000 (KB952004)

¡Fantástico! Las actualizaciones de Windows, estaban configuradas como automáticas, con permisos de descarga e instalación gestionados por Windows Update… Así que con la última publicación de las actualizaciones de Windows, el servidor se ha descargado e instalado dichas actualizaciones, con el posterior reinicio. ¿Reinicio? ¿Por qué no se ha reiniciado el PC? ¿Porqué se ha apagado directamente?

Una vez detectada la causa (otra cosa es ver quien o qué ha cambiado esto), es turno de la solución. Simplemente se vuelven a dejar las actualizaciones de Windows con permisos de descarga pero no de instalación, o si se dispone de algún programa de gestión centralizada de parches, pues entonces ni eso.

Flickr! Foto por herby_fr

Usuario ‘sa’ bloqueado

Database Por primera vez me encontré el otro día, con un SQL Server 2005 que daba un error de "usuario bloqueado" al intentar loguear con el usuario administrador "sa", al SQL Server Management Studio. ¿Usuario administrador bloqueado? ¿Y ahora cómo consigo permisos para desbloquear a un usuario administrador? :S

Por fortuna, el SQL Server tenía habilitada la autentificación en modo mixto, así que podía entrar tanto por autentificación SQL como por autentificación Windows (usando las credenciales del usuario local o de dominio). Dicho y hecho. Con el usuario administrador local conseguí entrar al SQL Server Management Studio sin problemas. Pero faltaba desbloquear al usuario "sa".

Desde la interfaz gráfica del Management Studio se puede desclickar el checkbox "usuario bloqueado" pero (aun no entiendo el porqué), si desmarcabas y guardabas, continuaba estando marcado, aún cuando además cambiabas el password. Así que de esta manera no se conseguía resolver el problema.

Finalmente, encontré esta sencilla instrucción en esta web , que solucionó al momento el problema:

ALTER LOGIN sa WITH PASSWORD = ‘password’ UNLOCK

Espero que os sea útil.

Flickr! Foto por Tim Morgan

Facebook… ¿seguro?

Search & DestroySí, lo reconozco, yo también formo parte de Facebook. Esa peazo red social que permite organizar cenas con los colegas que no veías en años (a las que no suelo poder asistir).

Hoy me he puesto a mirar y tengo realmente muchas solicitudes (de estas que te instalan aplicaciones externas a facebook) de las cuales nunca he aceptado ninguna. Nunca me ha dado demasiada seguridad este tema, así que hoy me he puesto a perder 10 minutos googleando a ver que pasa con este tipo de aplicaciones. (Otro día si acaso hablamos de los datos personales que se introducen en los perfiles de los usuarios, que corresponden a sus contraseñas del hotmail y demás, o de las búsquedas de información que hacen las empresas especializadas cuando necesitan conocer más a fondo a algún empleado).

Símplemente buscando por "seguridad aplicaciones facebook" aparecerán cientos de páginas comentando este problema. Básicamente todas hablan de lo mismo, de lo que se puede leer en Facebook Noticias en donde admiten un problema de seguridad con este tipo de aplicaciones, según un estudio de la compañía Sophos, debido al hecho (acertado bajo mi punto de vista) de permitir que cualquiera pueda crear sus propias aplicaciones y compartirlas en la red social. Muchos medios se hacen eco, aunque en facebook no parece hablarse del tema.

Desconozco hasta qué punto este problema lo es como tal. Que cada cual haga lo que quiera con sus datos en las redes sociales. Yo por si acaso voy a ir borrando mi número de cuenta de mi perfil.

Flickr! Foto por ptufts

Ese monstruo en tu disco duro

Monstruo Cuando se trabaja con SQL Server, y se tienen grandes bases de datos, sin mantenimiento, se consiguen tener verdaderos monstruos de registros de transacciones asociados. Archivos de más de 40GB y creciendo…

Después de tratar con bastantes casos, dejo aquí un resumen de las dos alternativas para reducir el log de transacciones de las bases de datos SQL. Recuerda que siempre es recomendable tener un backup completo y verificado, a buen recaudo, antes de realizar este tipo de tareas. Por si las moscas…

Opción 1 (habitual)

1- Abrimos el SQL Server Management Studio (o Studio Express).

2- Para realizar la compactación, debería bastar con hacer click derecho sobre la base de datos MiBaseDeDatos -> Tareas -> Reducir -> Archivos. Seleccionamos en el tipo de archivo «Log» (o «Registro en castellano). Nos aparecerá el espacio actualmente ocupado y el espacio libre que tiene el registro.

Símplemente seleccionando como acción «Release unused space» o (Liberar espacio no utilizado) y dándole a OK, deberíamos poder reducir bastante esta base de datos.

Opción 2

En la mayoría de casos, el procedimiento anterior para la reducción del log de transacciones debería ser suficiente, pero si no se liberase el espacio, podemos seguir este otro procedimiento manual, para forzar la reducción:

Básicamente, se trata de ejecutar una query con las siguientes sentencias:

USE MiBaseDeDatos
CHECKPOINT
EXEC sp_addumpdevice ‘disk’, ‘CopiaMiBaseDeDatos’, ‘c:\LogMiBaseDeDatos.bak’
BACKUP DATABASE MiBaseDeDatos TO CopiaMiBaseDeDatos
BACKUP LOG MiBaseDeDatos WITH TRUNCATE_ONLY
DBCC SHRINKFILE (MiBaseDeDatos_Log, 100)

Esto lo que hará es lo siguiente:

1- Usaremos la Base de datos «MiBaseDeDatos»
2- Nos aseguraramos que todas las páginas de memoria se han escrito en el fichero de datos.
3- Creamos un nuevo dispositivo de Backup para el log, llamado «CopiaMiBaseDeDatos» que dejará los datos en el fichero «c:\LogMiBaseDeDatos.bak»
4- Realizamos un backup completo de la Base de Datos sobre el dispositivo que acabamos de crear
5- Realizamos también el backup del log
6- Finalmente, forzamos la reducción, marcando como objetivo conseguir un archivo de log de 100MB.

Fuente: http://www.programacion.com/articulo/man_reducir_log/

Prevención

También podemos limitar el crecimiento del log de transacciones a un porcentaje del tamaño de la base de datos.
De esta manera, tendremos controlado el tamaño del log de transacciones, (que como ves acostumbra a crecer bastante).
Lo recomendable, es que el log de transacciones no sobrepase el 30% del tamaño actual de la base de datos.

Para controlar su crecimiento, con SQL Server 2005 o 2005 Express, podemos realizar lo siguiente:

1- Abrir el SQL Server Management Studio Express y autentificarnos
2- Seleccionar la base de datos MiBaseDeDatos que se encuentra en Databases -> MiBaseDeDatos
3- Click derecho sobre la base de datos MiBaseDeDatos -> Properties
4- Selecciona la opción «Files» del menú izquierdo en la ventana de Propiedades que se abrirá
5- Verás 2 ficheros (MiBaseDeDatos y MiBaseDeDatos_log). Deberemos seleccionar la fila MiBaseDeDatos_log, concretamente, haciendo click sobre el botón «…» de la casilla de Autogrowth.
6- Finalmente, aquí podremos habilitar o no el crecimiento automático, y en caso de habilitarlo, podremos fijar un tamaño máximo.

Flickr! Foto por autumn_bliss

Contratando el ADSL

Bueno, ¡por fin una actualización!

He estado de vacaciones el último mes, recorriendo mundo, y al volver me he visto con que aún no he contratado un ADSL con ningún operador. Por eso, me he puesto a buscar en la red las mejores ofertas y sin duda me he decantado por la de Vodafone (pongo el enlace aunque es posible que no dure mucho).

Básicamente la oferta es un ADSL 6MB/512kbps, que con cuota de linea incluida se va a los 29,90€/mes + iva. Sinceramente creo que es la mejor oferta por precio y prestaciones, ya que además tiene como aliciente el hecho de que te asocian un número fijo a tu teléfono móvil, pudiendo así enviar y recibir llamadas directamente desde el móvil, sin necesidad de tener un teléfono fijo, o ni siquiera el cableado en casa (como es mi caso). Además, el router wifi incorpora un módem 3G que permite conectar a Internet desde el primer momento sin tener que esperar a la instalación, y que posteriormente permitirá que nos conectemos desde cualquier lugar, eso sí, pagando unos 2,5€/día de conexión.

La verdad es que la oferta está bastante bien y además regalan los 2 primeros meses…

Pues nada, me decido a llamar para contratarlo y me comunican que aunque en la web continúa la oferta (aún hoy, día 13 de enero), ésta ya no está disponible, alegando que los técnicos "no se aclaran" con la tecnología que permite asociar el número fijo al móvil.

Ya me parecía a mi. Nadie ha sabido responderme a la pregunta ¿cómo sabrá mi router (o Vodafone) que estoy en mi casa, y que entonces estoy usando mi teléfono móvil como fijo en lugar de como móvil? Mi teléfono no tiene conexión a Internet, y mucho menos GPS…

En fin, que finalmente me decanto por la convencional ADSL de ya.com 10MB , que si no me equivoco es de las más económicas y no tiene mala velocidad. Aunque eso sí, antes a dar de alta la linea con Telefónica, que vía Internet es gratis (gracias por el aviso Sergio).