Blog

Sábado, 24 Agosto 2019 13:26

Libreria PHP para Andreani REST

Qué es esto? Es una librería php para conectar con la Api REST de Andreani. Creé la librería porque me ví casi forzado a migrar a la Api REST de Andreani. Hice un módulo en su momento, y sigo manteniendo, para Prestashop de Andreani que utiliza SOAP (documentación acá).

Por qué tuve que empezar a migrar a la Api REST? Porque los servidores de Andreani vía SOAP suelen tardan mucho tiempo en responder, tienen timeouts muy altos, de más de 1 minuto y han llegado a tardar hasta 5 minutos en responder (si si, leiste bien, 5 minutos!!!). Un dolor de cabeza y más cuando tenés que explicarle a tu cliente que el problema es de los servidores de Andreani...

Modificado por última vez en Sábado, 24 Agosto 2019 13:56
Miércoles, 13 Febrero 2019 10:11

Configurar DKIM con Exim en Centos 7

Vamos a configurar DKIM con Exim en CentOS 7.

Primero vamos a generar las claves privada y pública con openssl, sin utilizar opendkim ni nada parecido. Conectamos vía SSH al servidor en cuestión y ejecutamos:

openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key

Éstos comandos generan la clave pública y privada (keys). La clave privada la utiliza dkim para verificar que la clave pública (configurada en los DNS) que está en el mail enviado se correspondan. En caso de que estén bien se valida dkim sino falla.

Segundo creamos la carpeta /etc/exim/dkim, copiamos la clave private a la carpeta /etc/exim/dkim/ y luego asignamos el grupo "exim" a la carpeta dkim y a la clave private.key.

Modificado por última vez en Miércoles, 13 Febrero 2019 10:39
Miércoles, 19 Diciembre 2018 16:17

Plugin Recaptcha v3 para Joomla 2.5 - 2018

El otro día me encontré con un sitio hecho en joomla 2.5 que por tema de compatilibidad y recursos aun no estaba actualizado a joomla 3. El problema era que no funcionaba recaptcha en los formularios de contacto. Cual fue la solución? Adaptar el plugin oficial recaptcha de joomla 2.5 a recaptcha v3. Bajé el plugin, instalé via composer la librería recaptcha v3 y adapté el plugin.

Si tenés un sitio en joomla 2.5 y no te funciona recaptcha, probá este plugin, es el mismo que el oficial, solo lo adapté para usar la libreria recaptcha v3. El código está para ver y descargar en github: Plugin recaptcha v3 para joomla 2.5.

Cómo se instala? Se bajan el repositorio (en zip o con git clone), toman todos los archivos y carpetas (menos .git) y los comprimen en un zip. Instalan el zip como cualquier otro plugin desde el gestor de instalación de joomla, configuran el plugin recaptchaj25, lo habilitan y listo.

Modificado por última vez en Miércoles, 19 Diciembre 2018 17:18

Esto es un recordatorio de cómo cambiar de prefork a worker en apache 2.2. Básicamente se optimiza el usuario de memoria ram y cpu pasando a worker.

Edit: /etc/sysconfig/httpd

Uncomment:

HTTPD=/usr/sbin/httpd.worker

Restart, voila!

Saber si está funcionando worker ejecutar este comando y luego ver que diga "worker" y no"prefork".

$ apachectl -V | grep -i 'version\|mpm'

Fuente: stackoverflow
Modificado por última vez en Lunes, 03 Diciembre 2018 14:16

Antes que nada decir que esto está probado sobre un Prestashop 1.6 en desarrollo. Se clonó el sitio de producción y trabajó sobre el clon. Nunca realizar esto sobre un sitio en producción, siempre sobre un sitio de desarrollo (en este caso el clon).

Tenía en principio un Prestashop 1.5 que quería actualizar a la útlima versión de Prestashop (1.7.2.0). Queríamos realizar este proceso utilizando el módulo 1-Click Upgrade para que este haga la actualización de los archivos y la base de datos correctamente. Los pasos a seguir fueron:

  • 1. Actualizar Prestashop 1.5 a 1.6. Este proceso se realizó correctamente con 1-click upgrade.
  • 2. Intenté actualizar a Prestashop 1.7 desde PS1.6, pero falló. Intenté de diferentes manera: deshabilitando módulos, agregando mas tiempo de ejecución a PHP, cambiando la config del módulo, etc. pero no hubo caso.
  • 3. Para poder actualizar tuve que modificar el módulo 1-Click Upgrade 1.6.7 para que no haga backup de la base de datos y de los archivos. Al estar trabajando sobre un clon, esto no hace falta (por eso la importancia de trabajar sobre un sitio de desarrollo). Una vez con la modificación, inicié la actualización, salteó los pasos de backup y actualizó correctamente.
  • 4. Limpiar caché de Prestashop 1.7 y limpiar el historial/cache del navegador para que tomé bien los css y js del nuevo template del admin.

El archivo a modificar del módulo es ruta-a-mi-tienda/modules/autoupgrade/AdminSelfUpgrade.php

La funciónes a modificar son: ajaxProcessBackupDB() y ajaxProcessBackupFiles. Linea #3662 aprox. Reemplazamos ajaxProcessBackupDB y ajaxProcessBackupFiles por:

public function ajaxProcessBackupDb()
{   
        unset($this->nextParams['backup_loop_limit']);
        unset($this->nextParams['backup_lines']);
        unset($this->nextParams['backup_table']);
        $this->stepDone = true;
        // reset dbStep at the end of this step
        $this->nextParams['dbStep'] = 0;

        $this->next_desc = sprintf($this->l('Database backup done in filename %s. Now upgrading files...'), $this->backupName);
        $this->next = 'upgradeFiles';
        return true;
}

public function ajaxProcessBackupFiles()
{
        $this->stepDone = true;
        $this->next = 'backupDb';
        $this->next_desc = $this->l('All files saved. Now backing up database.');
        return true;
}

Con esta modificación se evitan los backups de archivos y base de datos y 1-click upgrade actualiza bien a Prestashop 1.7 en sitios grandes.

Es recomendable una vez que se está en Prestashop 1.7 actualizar el módulo porque estas modificaciones quedarían obsoletas (a menos que el módulo en 1.7 también falle).
No hice un debugeo a fondo, pero sospecho que falla por la cantidad de archivos a copiar. La tienda tiene mas de 1000 productos, con mas 1 una foto por producto, además hay 5 tipos de imágenes en Prestashop, por lo tanto existen un total aprox. de 10.000 archivos de imágenes como mínimo. Muchisimas imágenes para hacer backup, sospecho que por ahí viene el problema y efectivamente salteando el paso del backup el módulo funciona. No hizo falta debugear más porque la actualización a Prestashop 1.7 con 1-click upgrade funcionó.

Es una lástima que el equipo de Prestashop no deje hacer la actualización paso por paso, de esta manera se resolvería el problema sin tener que modificar el módulo. Es claro que no tienen ganas de hacer esta modificación para que tengas que comprar un módulo de migración...

¿Tenés la versión de Firefox Quantum 57 con este error?¿El inspector de Firefox no te funciona? ¿El inspector te tarda mas de 10 segundos en responder? ¿Abris la consola de desarrollo, intentas inspeccionar y tarde mucho en responder?

La solución a mi problema fue:

  • 1. Abrir una pestaña con la url: "about:config" (sin las comillas).
  • 2. Buscar la variables: "devtools.debugger.source-maps-enabled" (sin las comillas).
  • 3. Setearla en "false".
  • 4. Listo

En caso de no haber solucionado tu problema podes chequear el thread del problema aca dónde presentan otras posibles soluciones: Ir al thread del problema

Modificado por última vez en Jueves, 28 Diciembre 2017 15:50

Les comparto en esta ocacisón un tutorial muy completo que encontré sobre como configurar los registros SPF para los mails.

La página en cuestión es: Neeonez

Modificado por última vez en Martes, 31 Octubre 2017 17:03
Miércoles, 15 Marzo 2017 15:02

Bloquear IP o rango de ip con iptables

La manera de bloquear ip por iptables, o rango de ip, es con los siguientes comandos:

iptables -A INPUT -s 180.76.15.0/24 -j LOG --log-prefix "IP DROP SPOOF A:"
iptables -A INPUT -s 180.76.15.0/24 -j DROP

El primer comando lo que hace es generar el log al bloquear la ip o rango de ip, mientras que el segundo es el que bloquea la/s ip.

En este ejemplo bloqueamos el rango de ip pertenecientes a Baiduspider.

Jueves, 01 Diciembre 2016 16:46

Ejemplos de uso del comando find - ssh

Lista con ejemplos de uso del comando find, en ingles, pero se entiende perfecto: Useful Linux find Commands.

Una vez mas como comentaba en el post me encontre con que un usuario habia subido imagenes de gran tamaño por lo tanto cuando el Zoo (Joomla) intentaba redimensionar daba error de exceso de memoria. Se me vinieron 2 soluciones inmediatamente a la mente:

  • 1. Aumentar la memoria ram de la cuenta.
  • 2. Redimensionar las imagenes

Sin dudar por se un servidor que comparten varias cuentas, fui por la segunda opción. Cómo lo hice? Busqué algun comando que redimensione imagenes que sean mayores a un ancho mayor que 1280px (elegí este ancho porque era lo maximo que se mostraba en la web, podria haber sido 800px, 2000px, etc.). El comando que encontre fue:

# mogrify -resize '1280x960>' *.jpg

El comando anterior redimensiona (manteniendo la relacion de aspeco) las imagenes que tengan un ancho mayor que 1280px o 960px de alto a un ancho de 1280px o a un alto de 960px.

Modificado por última vez en Jueves, 01 Diciembre 2016 16:47
Página 1 de 4