Aumentar memoria en WordPress para evitar Fatal error: Allowed memory size of N bytes exhausted

Si manejáis WordPress a diario seguro que alguna vez habréis sufrido un error de falta de memoria RAM, que se traduce en un mensaje de este tipo:

Fatal error: Allowed memory size of N bytes exhausted

Como sabréis, PHP es un lenguaje del lado del servidor, que se interpreta (no se compila) y que en cada ejecución necesita una no despreciable cantidad de memoria para poder ejecutarse. Si usamos un sistema gestor de contenidos como WordPress y encima usamos cantidad de plugins y un theme que sea algo pesado, es muy posible que una ejecución necesite del orden de 64MB de RAM hacia arriba (he visto necesidades de más de 128 MB de RAM para ciertas operaciones). read more

Leer más » 2 Comentarios

Generador de ficheros .htaccess para banear IP, dominio o prevenir el hotlinking

Tenéis un sitio web y detectáis que os atacan por fuerza bruta, hay un spammer,  os enlaza alguien del que no queréis visitas o queréis prevenir que os “roben” imágenes mediante hotlink de vuestro sitio. Existen técnicas para evitar todos estos problemas pero la más efectiva si es siempre desde un mismo origen o conjunto reducido de orígenes, dirección IP o nombre de dominio, es valernos del .htaccess.

Si no conocéis bien su sintaxis o queréis directamente ahorraros el trabajo de hacerlo vosotros os recomiendo este servicio .HTACCESS IP que hace justamente eso.

.HTACCESS IP  Referrer  and Hotlink Banning Generator

Leer más » 1 Comentario

Fatal error: Allowed memory size of N bytes exhausted en PHP

Uno de los mayores problemas de usar WordPress, es que a pesar de ser un sistema bastante ligero, llega un momento en el que como no tengamos cuidado, puede llegar a ocupar muchos recursos. De cómo aligerar WordPress, he hablado y hablaré (de forma presencial por cierto en la próxima WordPress Meetup Córdoba que es ya mismo) pero esta no es la idea de esta entrada.

La idea de esta entrada es: no puedo aligerar WordPress por cualquier razón (no hay más que aligerar, falta de tiempo…) y el espacio que direcciona de memoria RAM se ha agotado. El indicativo de este problema es un mensaje que dice lo siguiente:

Fatal error: Allowed memory size of N bytes exhausted en PHP

La solución, intentar ampliar la memoria que tenemos disponible para PHP y por lo tanto para WordPress. ¿Cómo? Iremos intentando cada una de estas acciones.

Dentro de php.ini

Si tienes acceso al php.ini global o en su defecto, tienes un php.ini disponible en tu cuenta compartida, busca la línea:

memory_limit = 32M;

Y sustitúyela por esta otra:

memory_limit = 64M;

Leer más » 3 Comentarios

Cómo redireccionar un dominio sin www a él mismo con www

En función de nuestras necesidades, ya sea por comodidad o por mejorar el posicionamiento SEO nuestra web (contenido duplicado), es conveniente redireccionar el dominio simple (sin www) a un dominio con las www. Ya sé que existen mucha gente que prefiere no utilizar las www y otra que incluso odia esta manera de acceder a ellos.

No voy a entrar a discusión de si es mejor o peor, voy a plantear las dos posibilidades, dirigir de un dominio sin www al mismo con www y al revés.

Para hacerlo, ya sea usando WordPress, cualquier otro gestor de contenidos o sin ninguno, bastará con editar (o crear primero si éste no existe) un fichero .htaccess en la raíz del directorio. Si nuestro servidor es remoto podemos acceder por FTP o por Cpanel, ambas opciones son bastante conocidas. Así, abrimos o creamos este fichero y añadimos el siguiente contenido:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^linuxhispano\.net$ [NC]
RewriteRule ^(.*)$ https://www.linuxhispano.net/$1 [R=301,L]

Leer más » 5 Comentarios

Enlaces permanentes o pretty permalinks con htaccess y Apache

El posicionamiento en buscadores y la progresiva imposición del ecosistema web en el día a día del software, ha obligado a todos los que desarrollamos aplicaciones en la nube,  a cuidar la forma en que aparecen las URL, el producto de esta tendencia son los llamados pretty permalinks. Direcciones que identifican de forma unívoca a contenido y que además en lugar de tener parámetros, tienen una cadena entendible para los humanos.

¿En qué tecnología nos podemos apoyar para llevarlos a cabo? Podemos usar nuestro lenguaje del lado del servidor o directamente también podemos usar a nuestro servidor web. Explicaré en esta entrada cómo hacer enlaces permanentes vistosos usando Apache y .htaccess. Siempre hará falta conocer algo sobre expresiones regulares o patrones. El requisito técnico es que además del servidor web, tengas instalado mod_rewrite.

Objetivo

El ejemplo que vamos a desarrollar convertirá peticiones del tipo http://misitio.com/mipaginahttp://misitio.com/mipagina.php, para que podáis tener:

  • http://misitio.com/contacto usando http://misitio.com/contacto.php
  • http://misitio.com/sobre-mi usando http://misitio.com/sobre-mi.php

¿Útil no?

Código

Este es el código del fichero .htaccess:

Leer más » 2 Comentarios

Restringir acceso a ficheros o directorio por IP usando .htaccess

Conozco a unos usuarios de PHP-Nuke que aún hoy lo usan de una forma más o menos  segura gracias a que cambian la ruta de acceso a la administración cada cierto tiempo. La verdad es que a pesar de eso, ese conocido CMS, de los primeros que tuvieron cierta fama, sigue teniendo fallos graves de seguridad. Sin embargo, la experiencia demuestra que protegiendo la administración, nos quitamos bastantes problemas de encima.

Si usáis WordPress, cualquier otro CMS o incluso en aplicaciones web vuestras que vendáis a clientes, una de las restricciones más útiles, cuando es posible hacerla, es restringir el acceso por dirección IP. Hay métodos para hacerlo desde un lenguaje del lado del servidor, sin embargo, el más cómodo (al menos para mí) ya que no requiere que se toque el código del programa, es el basado en .htaccess.

Veamos cómo hacerlo.

Proteger un directorio

El fichero .htaccess deberá estar colgado de él y deberá contener el siguiente código:

Leer más » 3 Comentarios

Evitar listado de directorios con Apache

Introducción

Una de las acciones básicas de cara a mejorar la seguridad de un sitio web, es evitar que el servidor devuelva los listados del contenido de los directorios que son públicos. Una solución popular es incluir un fichero index.html vacío en todos los directorios que no deben ser listados o que no tienen un fichero que realice alguna función. Si estamos hablando de un sitio web con cientos o miles de directorios, esta opción queda descartada directamente. read more

Leer más » 3 Comentarios