Puff hace mucho no escribo nada mi nuevo proyecto (http://www.dondejugarpaintball.com) Me esta llevando todo mi tiempo libre.
Voy a mostrarles como implementar de forma simple dos tips de velocidad para tus paginas, el primero es gzip, la idea es que toda la salida de nuestra aplicacion al browser no tenga espacios inecesarios, tabulaciones, y saltos de lineas, en pocas palabras, si vemos el codigo fuente de nuestro sitio vamos a ver solo una linea con todo el contenido html, como pueden ver en http://www.dondejugarpaintball.com. Esto es muy util para ahorrarnos ancho de banda, y obviamente aumentar la velocidad con la que se descarga nuestro contenido.
Esto a simple vista pareceria ser un trabajo de horas, pero como nosotros usamos Zend Framework y toda la info de nuestra aplicacion pasa por nuestro public/index.php con solo editar este archivo podemos conseguir esta mejora en segundos.
Si tienen un archivo index.php standar sin modificaciones, puden copiar y pegar este codigo y es suficiente.
-
-
<?php
-
//Con esta linea le indicamos que queremos obtener toda la salida generada
-
// Define path to application directory
-
-
// Define application environment
-
-
// Ensure library/ is on include_path
-
)));
-
-
/** Zend_Application */
-
require_once ‘Zend/Application.php’;
-
-
// Create application, bootstrap, and run
-
$application = new Zend_Application(
-
APPLICATION_ENV,
-
APPLICATION_PATH . ‘/configs/application.ini’
-
);
-
-
$application->bootstrap();
-
$application->run();
-
-
-
// A partir de esta linea conseguimos toda la salida generada y la comprimimos
-
echo $cntACmp;
-
?>
-
Si guardan y ejecutan su aplicacion, ya tendrian que tener todo su contenido html en una sola linea.
El segundo tips, ya requiere un poco mas de conocimeintos sobre apache.
La idea es que cada vez que alguien pida un contenido estatico como una imagen, o css el apache responda lo mas rapido posible, esto se hace diciendole que nuestro contenido tiene una fecha de expiracion x, y por lo tanto si esa fecha no vario, hay que entregar el mismo contenido que se entrego anteriormente, esto reduce mucho los recursos de nuestro sistema para entregar un contenido estatico. Podemos definir tiempos para cada extension.
Para realizar este cambio necesitamos saber si tenemos el modulo expire de Apache activado.
En caso contrario entramos como sudo y escribimos
sudo a2enmod expire
Reiniciamos apache
/etc/init.d/apache2 reload
Y ya queda activado.
Despues de confirmar que el modulo expire esta activado, editamos nuestro archivo public/.htacces, y agregamos las lineas correspondientes.
-
-
-
#empezamos a definir los tiempos de expiracion de cada contenido
-
ExpiresActive On
-
ExpiresDefault A0
-
ExpiresByType image/gif A25920000
-
ExpiresByType image/png A25920000
-
ExpiresByType image/jpg A25920000
-
ExpiresByType image/jpeg A25920000
-
ExpiresByType text/css A25920000
-
ExpiresByType text/javascript A259200000
-
-
#estas son nuestras directivas por default
-
RewriteEngine On
-
RewriteCond %{REQUEST_FILENAME} -s [OR]
-
RewriteCond %{REQUEST_FILENAME} -l [OR]
-
RewriteCond %{REQUEST_FILENAME} -d
-
RewriteRule ^.*$ – [NC,L]
-
RewriteRule ^.*$ index.php [NC,L]
-
-





Y el gzip bien gracias…
Para poner gzip agregá en el .htaccess esta línea:
SetEnv gzip 1
El Gzip, lo manejo con PHP. FIjate en el codigo del index.php
1 – A menos que vayas a procesar con PHP todos los JS y CSS (y cualquier otro archivo de texto), necesitarías ponerlo en el .htaccess
2 – Seguís teniendo el problema de la definición de gzip al principio del artículo
Los css y js, siempre ya los comprimo, con el codigo de tu blog, no me acuerdo el post pero anda por ahi.
Mmm el código de mi blog era para cachearlo, no para comprimirlo.
Por cierto, deberías arder en el infierno por siempre por usar ereg_replace!!!!
Las funciones ereg_* si no están deprecadas en PHP 5.3 en cualqueir momento lo van a estar y para PHP 6, supuestamente, iba a haber que habilitarlas especialmente. preg_* para toda la vida.
Probá con:
$cntACmp = preg_replace(‘/\s+/’,’ ‘,$cntACmp);
El gzip queda activado con las lineas que puse en el index.php podes verlo en dondejugarpaintball.com
los css, imagenes, y js los manejo con google apps, y el hace la magia, eso me libera el servidor. y uso google app con CMDN (o como sea)
hehehehe, depreco en la 5.3 el ereg pero, que queres que haga, si vas a php.net/ereg_replace no te dice con que reemplazarla.
Sí te dice, mirá más abajo:
Note: As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension. Calling this function will issue an E_DEPRECATED notice. See the list of differences for help on converting to PCRE.
Tip
preg_replace(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg_replace().
Bueno che, voy a tener que cambiarlo en mi sistema.