Copiar cuentas entre Cpanel

1. Log into the server that your copying the accounts from via SSH
2. type ‘/scripts/pkgacct [username]‘
3. type ‘scp cpmove-[username].tar.gz root@[NEWSERVERIP]:/home/’
4. Log into the [NEWSERVER] via SSH
5. type ‘/scripts/restorepkg [username]‘

Backups automáticos con Rsync

Dejo unas notas sobre la configuración de Backups entre máquinas Linux con Rsync:

Desde el equipo que conectará a la fuente de los datos:

ssh-keygen -t rsa
scp .ssh/id_rsa.pub root@fuente-de-datos:~/
ssh root@fuente-de-datos
cat id_rsa.pub >> .ssh/authorized_keys
exit
ssh root@fuente-de-datos

y ya deberíamos estar dentro y sin contraseña…

Comando de Rsync para realizar la sincronización:

rsync -e ssh -avrPz  root@fuente-de-datos:/home/directorios/donde-esta-la-fuente/ /home/directorios/donde-guardar-los-datos/ 

Con –delete en el Rsync realizamos una comprobación de los archivos que ya no están en la fuente y los eliminamos en el destino.

Omito los pasos a seguir para realizar backups incrementales o comprimidos.

Instalar mod_auth_mysql en Apache 2.2

En todoroms nos vemos en la obligación de limitar el ancho de banda de los usuarios debido a que algunos de los mismos, abusan del sistema y descargan, casi se podría decir, compulsivamente. En un intento por mejorar la seguridad, vamos a instalar el modulo de autenticación con MySQL. Vamos a ver cómo hacerlo:

La página del proyecto:  http://sourceforge.net/projects/modauthmysql/

Nota: La versión 3.0.0, es compatible con Apache 1.3, Apache 2.0, pero NO con Apache 2.2. Para solucionar esto, tenemos que aplicarle un parcheo. Vamos paso por paso después del salto.

Continue reading…

Acentos en AJAX

Al utilizar un Charset distinto a UTF8 en tu web, habrás notado que se muestran carácteres extraños en la respuesta Ajax de tus scripts. No solo la respuesta necesita modificaciones para funcionar en otros formatos (en este caso en ISO-8859-1) sino también la recepción de datos también habrá que formatearla.

Por un lado, para mostrar en ISO-8859-1, en PHP es necesario incluir una cabecera (en ASP lo haremos con un Response.Header()):

  1. // cabecera que le dice al navegador el formato del texto
  2. header("Content-Type: text/html; charset=iso-8859-1");
  3. // cabeceras para no cachear el resultado (Tanto Explorer como Firefox cachean)
  4. header("Cache-Control: no-cache, must-revalidate");
  5. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

En el momento que enviemos cadenas de texto y tengamos que operar o mostrarlas en el fichero al que se hace la petición Ajax, deberemos formatearla. La razón es que el Objeto XMLHTTP trata el texto en formato UTF8, por lo tanto, aunque lo enviemos desde una página en ISO-8859-1, se enviará como UTF8 y si lo intentamos mostrar en una página con ISO-8859-1, se verán carácteres extraños. Por ello, si queremos tratar cadenas de texto, antes de nada, las formatearemos así:

  1. // recibo la cadena por GET y le aplico la decodificación
  2. $Nueva_Cadena = utf8_decode($_GET[Cadena]);
  3. echo $Nueva_Cadena;

Y así podremos tratar correctamente el texto en otro formato distinto a UTF8.

Aunque todo el mundo recomienda trabajar en UTF8, yo siempre he trabajado en este otro formato.