Cachea tus páginas en 5 pasos (PHP)

Por el 18 de febrero de 2007

en: Programacion

Cachear tus páginas puede ser algo realmente útil y más aún si tus paginas usan muchas conexiones a la base de datos y están generados con un lenguaje cómo Php, sobre todo cuando hablamos de hostings compartidos en los que el número de peticiones a las bases de datos esta limitado.

Cuando tus páginas son cacheadas el servidor no perderá ni tiempo ni recursos en regenerar una y otra vez estas, unicmanete las cargará de la cache. Vamos a ver cómo podríamos cachear nuestras páginas con Php en tan sólo 5 minutos.

Necesitaremos saber tres cosas antes de comenzar:
Primero si nuestro sitio esta desarrollado en PHP, segundo deberemos saber dar permiso 777 a una carpeta de nuestro directorio (en esta carpeta se albergarán las páginas cacheadas), si no sabes hacerlo pregunta a Google que seguro que resuevle tu duda y por último necesitaremos saber la ruta completa del directorio en cuestión, esto quiere decir ruta física (/home/pepito/public_html/).

Ahora que hemos resulto estas tres cosas podremos en unos simples pasos cachear nuestro sitio Php.

1.

En el raiz de nuestra web crearemos los siguientes archivos: .htaccess, start_cache.php, end_cache.php, y create una carpeta llamada “cache_files”.

2.

Cambiar los permisos a la carpeta “cache_files” a 777.

3.

Dentro de nuestro archivo .htaccess, insertaremos estas dos líneas de código:

php_value auto_prepend_file /home/pepito/public_html/start_cache.php
php_value auto_append_file /home/pepito/public_html/end_cache.php

Deberás cambiar “/home/pepito/public_html/” por la ruta física donde esta albergado tu sitio.

4.

Introduciremos el siguiente código en el archivo “start_cache.php”. De nuevo cambiaremos “/home/pepito/public_html/” por la ruta física de tu sitio.

<?
//Algunos parametros de configuracion
$settings_cachedir = ‘/home/pepito/public_html/cache_files/’;
$settings_cachetime = 3600; //keep cache files for 3600 seconds (1 hour)
//Pagina php
$thispage = ‘http://’ . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$cachelink = $settings_cachedir.md5($thispage).”.html”;
if (@file_exists($cachelink)) {
$cachelink_time = @filemtime($cachelink);
if ((time() – $settings_cachetime) < $cachelink_time) { @readfile($cachelink);die(); }
}
ob_start();
?>

5.

Por último introducir este código en el archivo“end_cache.php”.

<?
$fp = fopen($cachelink, ‘w’);@fwrite($fp, ob_get_contents());@fclose($fp);ob_end_flush();
?>

… y esto es todo amigos. Todas tus páginas incluidas las estáticas HTML seran cacheadas durante 1 hora, transcurrido este tiempo se volverán a generar. Las páginas cacheadas serán guardadas en la carpeta “cache_files” si tienes algún problema deja un comentario que alguien te echará una mano.

Via: Ibzi (Inglés)

Enlaces Relacionados

Seccion Programación (TuFunción)
Tutorial básico de AJAX
Diferencia entre PHP ASP y otros lenguajes de programación
Fácil sistema de autentificación de usuarios (PHP)
Tendencia de los lenguajes de programación
Bases de datos y PHP
Consejos para escribir código Javascript
Perl está muriendo
8 lenguajes de programación que deberías aprender
Escuchando mp3 desde Gmail
5 increibles aplicaciones Javascript
Crear un favicon.ico para tu Web
Fácil sistema de autentificación (login, password) PHP
Llamadas gratis con VoipBuster
Datos de seguridad en contraseñas

3 Respuestas a Cachea tus páginas en 5 pasos (PHP)

Avatar

Claudio

5 de julio de 2011 a las 7:00 am

Muy bueno y muy bien explicado. Ahora bien, supongamos que la página se cachea cuando alguien entra con el navegador IE y antes de una hora alguien entra con el navegador Opera, si yo tengo diferentes salidas de paginas para cada navegador se va a mostrar como corresponde o va a ignorar el navegador y va a mostrar lo que tiene cacheado?. Gracias

Avatar

Kinduff

19 de septiembre de 2011 a las 6:57 pm

Muchas gracias por el script, muy útil.

Saludos.

Avatar

jose - actividades solteros

31 de octubre de 2011 a las 3:12 pm

Me parece muy potente. Lo voy a probar.

Muchas gracias por la aportación, espero conseguir cargas más rapidas en mis paginas.

Dejar un comentario