|

Wapache: ejecuta tus aplicaciones web Windows

Si antes hablábamos sobre cómo ver aplicaciones web en el escritorio, ahora vamos a hablar sobre cómo ejecutar las aplicaciones web en el escritorio. ¿Qué diferencia hay entre una cosa y otra?, pues que en este caso el servidor se ejecuta en nuestra máquina. Se trata de Wapache, una aplicación que transforma nuestras aplicaciones web en un ejecutable de Windows, para lo cual hace uso de Apache e integra un navegador Internet Explorer en la ventana, el cual no tendrá menu, barra de herramientas o barra de direcciones.
wapache.png
Además permite tres tipos de ventanas, personalizar el drop-down, y el menú contextual. Integración con el System tray y es compatible con los módulos de Apache 2.
Wapache
Vía / Jaslabs: High performance Software

LiteSpeed Web Server

LiteSpeed Web Server es un servidor web con alto rendimiento y alta escalabilidad. Es compatible con Apache por lo que es fácilmente intercambiable.
Los resultados son bastante destacables, es 9 veces más rápido que Apache, se consigue un 50% más de rendimiento en PHP, mejor rendimiento con Ruby on Rails, 3 veces más rápido que Apache en SSL.
Además admite CGI, FastCGI, LSAPI, PHP, Servlet/JSP, Proxy, SSL, IPv4, IPv6, es compatible con el .htaccess, el mod_security y el mod_rewrite de Apache. La seguridad está muy bien implementada y la instalación es sencilla, disponiendo de un administrador GUI para facilitar la labor de mantenimiento.
Existen versiones comerciales, pero tambien hay disponible una versión gratuita que tiene ciertas limitaciones.
Estoy deseando probar que tal va, ¿alguien lo ha usado?.
LiteSpeed Web Server
Vía / International PHP Magazine

| |

Laboratorio: modificar urls para CodeIgniter con mod_rewrite

codeigniter.pngCodeIgniter es uno de los frameworks PHP de los que más se habla últimamente, a mí personalmente me gusta bastante, aunque hay algunas cosas que no son como me gustaría.

Una de ellas es la estructura de las URLs, las URLs siguen el formato:

http://dominio/controlador/metodo/parametro/parametro/...

El controlador es la clase que se encarga de hacer las operaciones y el método es el método de la clase que realiza una función concreta.

Por ejemplo si tenemos una tienda online, podemos tener un controlador para productos y un método que sea editar, con el que se podrá modificar las características del producto. La url sería la siguiente:

http://tienda.com/articulo/editar/cafetera

Con esta url podemos editar un artículo llamado cafetera y además es bastante entendible. Pero, ¿qué pasa si queremos mostrar el artículo cafetera?, pues que la url debería ser la siguiente:

http://tienda.com/articulo/ver/cafetera

Pero lo de ver no queda demasiado bien y queda mejor si es directamente:

http://tienda.com/articulo/cafetera

El problema nos lo encontramos cuando queremos usar una URL que no indique el método y si un parámetro. Si no usamos ni método ni parámetro, CodeIgniter toma por defecto el método index, pero si no usamos método y si parámetro, CodeIgniter no es capaz de saber que lo que mandamos es un parámetro, por lo que hay que usar el Apache para que siga la estructura de CodeIgniter.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^articulo/(.+)$ index.php/articulo/ver/$1 [L]
RewriteCond $1 !^(index\.php|favicon\.ico)
RewriteRule ^(.*)$ index.php/$1 [L]

Hay que tener en cuenta que este ejemplo es válido únicamente si solo se va a usar siempre dos segmentos en la url, uno para el controlador y otro para el parámetro.

La segunda parte y el uso de index.php es debido a que CodeIgniter usa este script para gestionar toda la aplicación, y para que no aparezca, debemos redireccionarlo todo a index.php, menos los ficheros que existen como el favicon, el robot.txt, etc.

| |

Server2Go: servidor WAMP portable

server2go.pngServer2Go es un servidor web completo y portable, el cual podremos tener instalado en CDROMs o unidades USB.

Dentro de las características que ofrece nos encontramos con:

  • Gratuito
  • Servidor WAMPP (Windows, Apache, MySQL, PHP y Perl)
  • No necesita instalación
  • PHP 5 con muchas extensiones instaladas.
  • SQLite
  • MySQL 5
  • Perl 5.8

La licencia es donationware, lo que quiere decir que si se dona una cantidad de dinero (10€) se podrá acceder a características ampliadas.

Server2Go

Vía / OpenSourceCommunity.org

| | |

MAMP: Apache, MySQL y PHP para Mac

mamp.pngMAMP es un instalador de Apache, MySQL y PHP para Mac OS X sencillo y que con unos pocos clicks ya tenemos instaladas las aplicaciones más habituales para desarrollo web.
mamp.jpg
La versión está realizado bajo licencia GNU General Public License, aunque existe una versión PRO, con licencia, que dispone de funcionalidades extra.
MAMP

| | |

mod_top: herramienta para monitorizar aplicaciones LAMP

mod_top es una herramienta que nos permite monitorizar nuestras aplicaciones LAMP, ofreciendo un entorno similar al conocido comando top. La intención es dar soporte a PHP, Perl, Ruby, Python, mySQL, Postgres y Apache1+2 en Linux, pero actualmente solo da soporte a PHP4 y PHP5.

mod_top.png

Con mod_top podrás:

  • Localizar cuellos de botella en tus aplicaciones.
  • Solucionar problemas de gran consumo de memoria.
  • Comprender el uso de CPU.
  • Diagnosticar causas de poco uso y gran uso de recursos.
  • Descubrir dependencias de la BD.

top_mod

Vía / VT’s Tech Blog

Fichero htaccess imprescindible de ejemplo

Los ficheros htaccess son imprescindibles a la hora de crear una aplicación web en condiciones. Con ellos podemos realizar muchas acciones que mejoran la funcionalidad y nos ahorrar tiempo de programación.

Para aquellos que no estamos muy acostumbrados al fichero htaccess, nos viene bien una chuleta que nos muestre las acciones más usuales que se pueden realizar en Apache.

Por ello, la gente de AskApache se han creado un fichero de ejemplo con casi todas las cosas que se pueden realizar en un htaccess, prometiendo futuras ampliaciones. Entre las funcionalidades que encontramos está:

  • Opciones genéricas
  • Variables de entorno
  • Mime Types
  • Forzar la descarga del archivo
  • Documentos de error
  • Acciones sobre scripts
  • Cabeceras, caché y optimizaciones
  • Rewrites y redirecciones
  • Autenticación y seguridad
  • SSL
  • Site en construcción

Ultimate htaccess File sample

Laboratorio: Proteger ruta virtual mediante Apache

En otras ocasiones hemos comentado como proteger directorios mediante Apache, incluyendo en el .htaccess los comandos necesarios para ello. El problema viene cuando en vez de proteger una ruta física, queremos proteger un URL virtual, entendiendo URL virtual, aquella que no existe físicamente y que mediante Apache redireccionamos a un script en concreto, por ejemplo:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule ^clientes index.php?redirect=clientes [QSA,L]

En este caso, si accedemos a http://servidor/cliente, realmente no estaremos accediendo a una ruta física, pero puede ser que queramos que esta url no sea accesible para todo el mundo.

Para proteger una URL virtual debemos usar el comando Location, el cual debemos incluirlo en el httpd.conf o en un dominio virtual, y para protegerlo deberemos usar:

<Location /client>
AuthType Basic
AuthName "Acceso Protegido"
AuthUserFile [ruta .htpasswd]
AuthGroupFile /dev/null
order allow,deny
allow from all
deny from none
require valid-user
</Location>
|

Optimizaciones para Apache y PHP

La gente de IBM nos vuelve a ofrecer un artículo en el que nos explican como optimizar nuestro Apache y PHP para obtener mejores resultados en nuestras aplicaciones web.
El artículo está dividido en dos partes: una para configurar Apache y la otra para PHP, existe un documento anterior en el que explican la arquitectura LAMP y como configurar Linux.
Inicialmente para Apache nos explica cómo configurar el MPM (Multi-Processing Modules), el cual ayuda a manejar las conexiones entrantes y las salientes, podremos indicar el número máximo de clientes y el número de peticiones por hijo que tratará, entre otras cosas.
Algo también muy importante es configurar eficientemente las opciones o controles que se indican en los ficheros de configuración, y que controlan las reglas que debe seguir el servidor web con cada petición.
Por último, habrá que tener en cuenta en la configuración el número de conexiones que permanecerán activas para una llamada HTTP, así como el envío de la respuesta de forma comprimida (de esto ya hemos hablado en otras ocasiones, hay que decidir entre CPU usada en el servidor o respuestas más rápidas).
Sobre PHP nos indican la necesidad de usar opcode cache, representación binaria del script PHP que puede ser ejecutada. Para ello existen varios cachés disponibles, aunque recomiendan el uso de eAccelerator.
El resto de las recomendaciones se refieren a la configuración del tiempo máximo de ejecución, el tiempo máximo de espera de la entrada, la memoria máxima utilizada y al tamaño del buffer.
Optimizing Apache and PHP
Vía / Good PHP Tutorials

Más consejos para mejorar la velocidad de tu web

Ya en otras ocasiones hemos hablado sobre cómo mejorar la velocidad de tu web, en esta ocasión os presentamos otra lista que han publicado en Ask Apache, algunas nuevas, otras ya conocidas y otras un tanto curiosas (como la recomendación de un hosting del que quizás algunos tienen una opinión diferente).

Para no repetir contenido, voy a comentar tan solo las nuevas o las que no hemos repetido demasiado:

  • Usa XHTML y no uses estilos en las propias etiquetas.
  • Usa subdominios separados para alojar las imágenes estáticas y los ficheros de caché. En este caso yo creo que no se trata de subdominios virtuales, porque estaríamos en las mismas, supongo que pretenden tener un propio servidor para este tipo de contenido, para no sobrecargar el mismo servidor web.
  • Usa direcciones IP estáticas para tu dominio web y subdominios.
  • Usa CDN (Content Delivery Network), una red de servidores conectados entre sí en Internet que envían el contenido al usuario de forma transparente, sobre todo contenidos multimedia que suelen pesar mucho más. Algo parecido sería usar balanceo de carga, técnica que también se usa en el CDN.
  • Evita el uso de ETags.
  • Crea Ajax que permita caché y que sea sencillo.
  • Yo añadiría separar en tres servidores: aplicaciones, web y base de datos.

Parecen buenos consejos, pero claro, en la mayoría de los casos no podremos llevarlas a cabo por falta de recursos, así que lo mejor es elegir un buen hosting para suplir la imposibilidad de tener un CDN o IPs estáticas u otras más.

Top methods for faster, speedier web sites