Posts Tagged ‘IIS’

Implementando WinCache en CMS y apps basadas en PHP

Monday, May 3rd, 2010

WinCache permite mejorar la velocidad y rendimiento de PHP sobre Windows. Está basado en un driver para PHP y puede ser usado por los programadores en sus aplicaciones para mejorar el rendimiento y hacer uso de este cache. Grandes aplicaciones de PHP ya pueden hacer uso de este componente, algunas de ellas:

Drupal: http://blogs.iis.net/donraman/archive/2010/03/15/performance-improvements-in-drupal-with-wincache-user-cache.aspx

Wordpress: http://blogs.iis.net/ruslany/archive/2010/03/05/make-wordpress-faster-on-iis-with-wincache-1-1.aspx

Joomla: http://blogs.iis.net/donraman/archive/2010/03/05/performance-improvement-in-joomla-with-wincache-user-cache-to-cache-session.aspx

También puedes hacer uso de WinCache en tus aplicaciones PHP, en este link la biblioteca de funciones http://us.php.net/wincache . Para instalarlo puedes usar el web platform installer:

  • WinCache 1.0 for PHP 5.2 – x86
  • WinCache 1.0 for PHP 5.3 – x86
  • WinCache 1.1 Beta 2 for PHP 5.2 – x86
  • WinCache 1.1 Beta 2 for PHP 5.3 – x86

También puedes descargar el código fuente AQUÍ .

Si tienes experiencias interesantes acerca del uso de WinCache, no duden en comentarlas ;-)

Saludos,

How To: Construir un servidor web con IIS7.5 Server Core (III)

Monday, March 8th, 2010

Habilitando funciones de cache en el servidor web y para PHP

IIS7.5 cuenta con distintas versiones para el manejo de cache de la información que circula en el servidor web, algunos orientados a docuemtos, a extensiones, documentos estáticos y dinámicos, entre otros.

Elemento <caching>

Este elemento permite manejar cache para el contenido de salida de las páginas, pudiendose manejar en un modo usuario, modo kernel o mixto y límites para configurar el cache. Éste puede ser configurado en ApplicationHost.config o en niveles inferiores como sitios web. Este elemento consta de varios atributos a configurar:

enabled: Es opcional. Valor True/False. Valida si el chaching está activo o no. El valor por defecto es True
enableKernelCache: Es opcional. Valor True/False. Especifica si el modo kernel cache está activo o no. El valor por defecto es True
maxCacheSize: Es opcional. Valor entero. Especifica la capacidad máxima para el cache de salida. Debe configurarse en ApplicationHost.config. El valor por defecto es 0
maxResponseSize: Es opcional. Valor entero. Especifica el tamaño máximo de respuesta que será guardado en cache. Debe configurarse en ApplicationHost.config. El valor por defecto es 262144

Para configurarlo, podemos hacerlo de la siguiente manera:

1. En la consola nos movemos al directorio C:\Windows\System32\inetsrv
2. Tecleamos el siguiente comando (este ejemplo se hace con las paginas de asp.net):
appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='aspx',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /commit:apphost

Cache para PHP, WinCache

Para manejo de cache en PHP podemos utilizar una extensión desarrollada en conjunto Microsoft/PHP Team que va a permitir manejar de forma nativa el manejo del cache e inclusive el monitoreo de comportamiento. Esta extensión para PHP pueden descargarla de PECL PHP – WinCache o de IIS Expand – WinCache . Para configurarlo realizamos los siguientes pasos:

1.Descargamos Windows Cache Extension, donde conseguiremos en su estructura de archivos una DLL llamada php_wincache.dll . Este archivo lo copiaremos a la carpeta ext del directorio de PHP y en php.ini registraremos esta extension. Para editar el php.ini desde la consola pueden ejecutar el siguiente comando

notepad C:\php\php.ini

2. Una vez ejecutado el paso anterior, podemos probar el funcionamiento de este cache usando un archivo llamado wincache.php dentro de la estructura descagada de winCache . Este archivo lo podemos copiar en nuestro sitio web de IIS. Antes de ejecutarlo debemos cambiar usuario y clave dentro del script y luego lo podemos consultar por el explorador web. Para conocer más de WinCache pueden consultar PHP: WinCache – Manual

(more…)

Presentación Webcast “Configurando Servidores web interoperables”

Thursday, March 4th, 2010

Ayer Miércoles 3 de Marzo tuve la oportunidad de dar un webcasts referente a “Configurando Servidores web interoperables con Windows Server 2008 R2 Server Core”, donde toque temas de administración, configuración de IIS en server core así como las tecnologías de desarrollo y scripting a utilizar en el mismo. Abajo les dejo la presentación utilizada.

Pueden descargar la grabación del webcast en http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032440261&Culture=es-AR

How To: Configurar Framework KumbiaPHP en IIS 7.x

Monday, March 1st, 2010

 KumbiaPHP es un ligero pero potente framework para aplicaciones PHP el cual se caracteriza por su sencillez al momento de configurarse. Por defecto, al descargar este framework cuenta con las plantillas .htaccess correspondiente a la configuración de reescrituras de URL en Apache, sin embargo en IIS este documento de configuración no es interpretado.

Para configurar KumbiaPHP en IIS 7.x podemos seguir los siguientes pasos:

1. Descargar la extensión para IIS7 llamada URL Rewrite Module . Puedes instalarla también con el Web Platform Installer

2. Luego de instalada, creamos un sitio web en la consola de administración de IIS donde colocaremos a KumbiaPHP

3. Para que kumbiaPHP sea interpretado de forma correcta, debemos activar algunas reglas de reescritura y redirección, especificamente en 4 casos:

Definido estos casos, crearemos estas 4 reglas en un archivo web.config en la raiz del sitio web. Estas reglas deben ser creadas en el siguiente orden segun los casos arriba mencionados:

  • home_rewrite
  • redirect_to_home
  • redirect_to_param
  • param_rewrite

La estructura de nuestro archivo web.config quedaría de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="home_rewrite" stopProcessing="true">
                    <match url="$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
                    </conditions>
                    <action type="Rewrite" url="public/index.php" />
                </rule>
                <rule name="redirect_to_home" stopProcessing="true">
                    <match url="^public/index.php" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Redirect" url="/" redirectType="Permanent" />
                </rule>
                <rule name="redirect_to_param" stopProcessing="true">
                    <match url="^public/index\.php$" />
                    <conditions>
                        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
                        <add input="{QUERY_STRING}" pattern="^url=([^=&amp;]+)$" />
                    </conditions>
                    <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
                </rule>
                <rule name="param_rewrite" stopProcessing="true">
                    <match url="^([^/]+)/?$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="public/index.php?url={R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

De esta forma podemos comenzar a trabajar con KumbiaPHP en IIS 7.x . Sigo realizando pruebas para validar todos los casos de reescritura a medida que creo mi primera aplicación de prueba. Cualquier duda, comentario, problemas conseguidos con las reglas no dudes en comentarme para seguir iterando en el tema :)

Saludos,

How To: Configurar Python en IIS 7.x

Wednesday, February 24th, 2010

Es posible configurar Python para funcionar de forma correcta bajo un modelo de CGI en Internet Information Services (IIS) 7.x .

1. Descargamos Python (a efectos de este post utilizaremos la versión 3.1) y lo instalamos

2. Abrimos la consola de administración de IIS y vamos a la sección de Handler Mappings donde registraremos una nueva extensión para documentos .py . Seleccionamos “Add Module Mapping” y agregamos los siguientes valores:

3. Una vez registrada la extensión, podemos ajustar los valores de comportamiento del compilador de Python en IIS->FastCGI Settings

Pueden probar la configuración con un script sencillo como este:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print("Content-Type: text/html;charset=utf-8")
print()

print("

Hello World!

")

Aun realizo pruebas para realizar esta configuración en modo Server Core en windows Server 2008 R2…. Luego les contaré que tal me fue.

Saludos,