Programación y Estrategias de Negocios RSS 2.0
# Thursday, October 30, 2008

Hace mas de un año escribí algunos artículos sobre el soporte para FastCGI en Windows Vista o Windows 2008 (lo que en realidad significa en IIS7). Hoy tuve que configurar nuevamente mi máquina para esto y encontré nueva información que puede ser útil:

1. Después del Service Pack 1 de Vista se ha creado un update  del FastCGI.

2. Se ha actualizado (ayer) el proveedor de acceso para SQL Server 2005 y SQL Server 2008. Con este es posible conectar una aplicación de PHP a SQL Server 2008 (incluida la versión Express).

 

Dejo algunas herramientas y referencias aquí:  

 

Referencias:

Tutorial buenísimo de la instalación de PHP y FastCGI en IIS7 (Windows Vista y Server 2008) En Ingles

http://support.microsoft.com/?kbid=954946

 

Herramientas.

Actualización para FastCGI en Windows Vista SP1

SQL Server Php Driver Update

 

Juan Pelaez
Arquitecto de Software

 

Keywords: PHP, FastCGI, Windows Vista, Windows Server 2008, SQL Server 2008.

Publicado en www.juanpelaez.com/blog 

Thursday, October 30, 2008 5:24:03 PM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
FastCGI | nunit | SQL Server 2008 | Windows Server 2008 | Windows Vista
# Monday, October 20, 2008

Simplemente no hay disco duro que aguante. Ahora tengo 200 Gigas. Nada se lleno igual. Los discos duros externos me aburren o tiene cables o pesan más que el computador o son muy pequeños o hay que tener 10…

Poner todo en la nube. Excelente….solo que no tengo internet en todas partes. Ni siquiera en mi casa. (Vivo en el campo). En fin. Después de llorar. Algunos trucos para limpiar el disco que nos pasa Shanlseman.  Aqui en Ingles.

 

El que más me gusto:

Remover los instaladores del Service Pack 1 de Windows Vista. 

Abra la consola de comandos, (Search CMD), como administrador, (Botón derecho del Mouse, Run as Administrator), ejecute el comando vsp1cln, siga las instrucciones de la pantalla. (Básicamente dígale que si quiere eliminar el instalador, aunque después no pueda desinstalar el SP1 de Windows Vista).

 

Juan Pelaez.

Arquitecto de Software.

 

Keywords: Utilidades, Comandos, Windows Vista.

Monday, October 20, 2008 10:06:40 AM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Windows Vista
# Friday, May 16, 2008

Hace unos días instale en mi Nuevo MacBook Pro windows vista y otros sistemas operativos, ahora algunas actualizaciones de como ha sido la experiencia:

 

1. El teclado me costó un poco de trabajo pero no tanto como pensé, las teclas que más extraño son end, home, delete, etc, pero rápidamente descubir que usando Fn y las flechas puede hacer estas funciones, por ejemplo Fn flecha izquierda es Home, Fn flecha derecha es End, Fn Delete es delete (delete solo es Tab).,etc, las teclas de función también las extraño, pero se usan igual usando Fn y la función que uno quiere. Todas las teclas de función se usan para otras cosas pero todo está muy pensado, como subir el volumen, aumentar el brillo, etc.

 

2. El mouse si fue re fácil, le puse un mouse externo normal y listoJ, botón derecho y todo lo demás habilitado, cuando no estoy usando el mouse externo solo presiono control y click y eso es click derecho, o utilizo los dos dedos en el pad mouse y click. (esta máquina tiene pad mutitouche, estoy tratando de hacer aplicaciones que lo aprovechen del tipo surface… pero eso es otra historia)

 

3. Al principio tuve algunos problemas hibernando y dejando en stand-by, pero después de instalar el SP1 de Windows vista, se han solucionado esto problemas y todo el OS funciona perfecto.

 

4. Actualice mi maquina a 4 gigas de RAM, la compre por Amazon en 90 dólares, para un usuario normal puede no ser necesario, pero yo uso mucho maquinas virtuales con OS completos (incluso la red completa, 3 VMs al tiempo para pruebas de aplicaciones distribuidas) asi que entre más RAM mejor, ahora le puedo poner hasta 1.5 de ram a cada máquina virtual (con 2 maquinas) o 1 mega (con 3 Maquinas).

 

5. Un problema que me estuvo preocupando un rato tenía que ver con la temperatura que alcanzaba la maquina cuando estaba usando vista, se ponía muy caliente ,algunos lo han reportado en Internet, pero era solo en vista, no en Mac OS X, buscando un poco encontré una utilidad que permite configurar la velocidad mínima de los ventiladores del computador, aparentemente en vista están siempre a la mínima velocidad y por eso se calentaba tanto el computador.

 

Todo lo demás ha sido perfecto, la cámara, el audio, etc., ha funcionado de maravilla. Ahora estoy pensado en actualizar el Linux a fedora9, pero eso será tema de otro post.

 

Juan Peláez

Arquitecto de Software.

 

Keywords: Mac Book Pro, Windows Vista SP1.

Friday, May 16, 2008 1:57:49 PM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
MacBook Pro | Windows Vista
# Monday, April 07, 2008

Llevaba un par de meses buscando una computadora nueva, los requisitos eran sencillos: Que soportara 4 Gigas de Ram, que la tarjeta de video no estuviera dentro de la Board (integrada), que el disco fuera grande, etc., etc., lo que cualquiera quiere para su computadora.

Luego de muchas coincidencias y de buscar en varios almacenes y revisar las tarjetas de crédito, la financiación, y de más coincidencias, termine comprando esto:

DSC05469 (Small)  DSC05470 (Small) DSC05471 (Small)

Un MacBook Pro, la maquina que mejor corre vista según PC Magazine

Así que ahora que ya estaba desempacado y listo en mi escritorio, me puse a la tarea de instalar los sistemas operativos con los que trabajo ahora (Windows Vista y Fedora 8) y este fue el resultado:

Esta información es solo para mi propia consulta y entretenimiento, si usted decide seguir estas instrucciones sepa que no puedo hacerme responsable por el resultado. Por favor saque copias de seguridad de toda su información, algunas de las tareas descritas pueden borrar completamente su disco duro, inutilizar los sistemas operativos o hacerle perder muchas horas.

 

Primero instalé el OX, es decir seguí las instrucciones del instalador. (Mi maquina venia con MacOS 10.5.2), (Después de esto estuve mirando BootCamp, la utilidad incluida en mi Mac para instalar Vista, es un asistente que parece funcionar bastante bien, arranca con una pantalla para particionar el Disco, y pude ver en el manual que después asistiría también en la instalación de Vista, el CD de MacOS trae todos los Drivers para Vista así que el proceso de poner solo vista debe ser muy, pero muy sencillo. Si usted solo quiere Windows Vista en su Mac y quiere dual Boot le recomiendo usar BootCamp. )

(Nota: Si solo quiere Windows Vista solo meta el CD arranque con la tecla ALT desde el CD de vista y siga los pasos de instalación, según he visto en Internet esto le permite tener una maquina con solo vista  pero no puedo asegurarlo).

Yo quiero 3 sistemas y pues si ya pague por el MacOS seguro lo puedo probar algunas veces….

Entonces, no podía usar BootCamp, tenía que hacer la partición del disco usando comandos de MacOS, fui a la consola de terminal y reparticione el disco con el comando:

command$ sudo diskutil resizeVolume disk0s2 50G "MS-DOS FAT32" "Linux" 30G "MS-DOS FAT32" "Windows" 110G

Aquí lo que estoy diciendo es que deje 50G para el MacOS, 30 para el Linux y 110 para el Vista.  (Si este comando le da errores seguramente se deba a que la suma de las tamaños supera al disco duro total o al espacio libre, recuerde que el MacOS usa dos particiones, la del Sistema Operativo en sí mismo y la del Arranca EFI (Nuevo estándar recomendado por Intel para algún día reemplazar al viejo MBR))

Inserté el CD de vista reinicié la maquina y deje presionada la tecla Alt mientras arranca, arranque el instalador de Vista y seguí  las instrucciones, cuando me preguntó la ubicación le dije que quería usar la partición 4. (Por cierto se llama sda4.) Es importante que quede en esta partición. Revisando en Internet he encontrado que el BootCamp y otras utilidades necesitan que Vista quede en la última partición de la Cadena.

Durante la instalación vista recomienda formatear la partición a NTFS, así que hice el format y continué la instalación.

La instalación llega hasta un punto donde pide reiniciar, no pudo, pero no importa lo dejo así por ahora.

Luego instale Fedora 8, inserte el CD de fedora 8, apague la maquina y la prendí mientras tenia la tecla Alt presionada, arranque con el CD de Fedora (que curiosamente aparece como Windows en el arranque de Mac). Seguí  las instrucciones de instalación, cuando llego al punto que preguntaba qué  tipo schema de instalación quiero hacer, seleccioné Custom. (Esto es importante, si selecciona la opción por defecto, formatea todo el disco, si selecciona usar el espacio libre y schema por defecto es probable que no haya nada libre o que no le quepa el Linux).  Al seleccionar un schema personalizado aparece la tabla de particiones, así que seleccioné sda3, luego seleccioné la opción de editar: Me pregunta por la base de instalación selecciono “\”, y le dijo que formatee la partición usando ext3. (Esto me costó varias instaladas, estaba formateando con Fat32 y al final no podía instalar el GRUB).  También seleccioné opciones avanzadas del GRUB y le dije que lo copiará en la misma sda3. (No lo vaya a instalar en sda que daña los otros sistemas operativos).  Esta instalación si llega hasta el fin.

Reinicié la maquina, ahora entré al MacOS, copié los archivos de la utilidad rEFit en la raíz del MacOS (Machitosh HD) abrí la consola de terminal, fui al directorio efi/refit (cd into /efi/refi) y ejecuté el script enable.sh (run ./enable.sh)

Con esto ya tenía un menú que me muestra los 3 OS.

DSC05472 (Small)

Mac y Linux arranca pero Vista no, así que inserte el CD de vista, reinicie con ALT, arranque desde el CD de vista, no instaló, seleccioné la opción de reparación, se detecto un error del arranque (Boot), y se reparó.  Ahora puedo arrancar vista desde el menú de arranque del Mac.

 (Si no arranca haga nuevamente el proceso de reparación desde el Cd de Instalación de Windows Vista.)

Una vez que arranqué vista solo inserté el disco de MacOS (10.5.2) el setup de BootCam arrancó solo e instaló todos los driver, al reiniciar, mi calificación de Windows vista es de 4.8. Y corre realmente rápido.

Pruebo todos los OS y todos funcionan, mi maquina tiene 3 OS!!!

DSC05475 (Small) DSC05478 (Small) DSC05480 (Small)

PostData (Problemas)
Vista: Parece que no puedo hibernar o dejar en StandBy, eso es algo que uso bastante así que habrá que investigar más, parece que SP1 lo resuelve.

 

 

Juan Carlos Peláez

Arquitecto de Software.

 

Keywords: MacOS 10.5.2, MacBook Pro, Fedora 8, Windows Vista Business, rEfiT 0.11,  Sistemas Operativos, Portatiles.

Monday, April 07, 2008 8:46:00 PM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Fedora 8 | MacBook Pro | MacOS | Windows Vista
# Tuesday, August 21, 2007

Otra de las áreas de interés de la Plataforma Microsoft son los servicios de SharePoint, que en la versión 3.0 corren en maquinas Windows 2003 y permiten construir rápidamente intranets, aplicaciones Web y Sistemas de Colaboración muy integrados con la plataforma Windows y Office.

Sin embargo para los desarrolladores que usamos Windows Vista (o Windows XP) en la máquina de desarrollo ha sido un poco complicado desarrollar webparts y otros tipos de proyectos para sharepoint ya que no instalan sobre Windows Vista, esto nos ha llevado a usar soluciones de maquinas virtuales y demás.

Sin embargo buscando en internet he encontrado la forma de instalar las extensiones de SharePoint para Visual Studio 2005, lo que simplifica mucho el desarrollo de estos proyectos sobre mi maquina de trabajo.

La solución es crear la siguiente llave en el registro para que el instalador se ejecute normalmente.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0]
"Sharepoint"="Installed"

Referencia: http://blogs.msdn.com/jannemattila/default.aspx ,

Yo lo acabo de probar y funcionó perfectamente. Aquí una foto de mi Visual Studio en Windows Vista listo para crear un proyecto de SharePoint.

SharePointVSExtensionsOnWindowsVista

Recursos

Windows SharePoint Services

Windows SharePoint Extensions for Visual Studio 2005.

Espero que sea de ayuda.

 

Juan Carlos Peláez

MCTS.

Miembro del Microsoft Speaker Group Andino  

Miembro del Microsoft Influencers Group de Colombia.

KeyWords: Sharepoint Services 3.0,  Juan Peláez, .Net, Windows Vista, Extensiones para Visual Studio 2005, Instrucciones, Instalacion, Programación, Soluciones SharePoint, WSS 3.0. Web Parts, Templates

Tuesday, August 21, 2007 2:04:38 PM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Articulos de Desarrollo | Sharepoint | Visual Studio | Windows Vista

Este post es una continuación del anterior sobre FastCGI y el IIS7, en Windows 2008 Beta 3 y Windows Vista, se incluye como soporte nativo FastCGI, lo que permite correr en maquinas Windows aplicaciones PHP y otros lenguajes de Script con altísimo rendimiento y estabilidad, incluso en ambientes en producción. El FastCGI CTP preview 2 también pueden montarse sobre IIS 5.1 y 6.0.

En este post, más allá de las instrucciones de cómo instalar una aplicación PHP en Windows Vista o Windows 2008, hablaré un poco de las razones por las que el rendimiento de las aplicaciones se incrementa al usar FastCGI.

Primero un poco de Antecedentes.

Common Gateway Interface (CGI)

El estándar de facto para aplicaciones en servidores web es CGI, que fue implementado inicialmente por el servidor NCSA. CGI tiene varios beneficios:

· Simplicidad. es fácil de entender

· Independencia del Lenguaje. Las aplicaciones CGI pueden ser escritas en cualquier lenguaje

· Independencia de Procesos. Ya que las aplicaciones corren en procesos separados, las aplicaciones con problemas no pueden dañar el servidor web o acceder al estado interno y privado del servidor.

· Estándar Abierto. Alguna forma de CGI ha sido implementada en todos los servidores web

· Independencia Arquitectónica. CGI no está atado a ninguna arquitectura particular de servidor 

CGI también tiene algunas deficiencias importantes. El problema principal es el rendimiento: debido a que se crea un nuevo proceso para cada request y este se elimina cuando el request se completa, la eficiencia es pobre.

CGI también tiene una funcionalidad limitada: solo soporta el Rol "responder", donde la aplicación genera la respuesta que es enviada al cliente, los programas CGI no pueden asociarse a otras partes del procesamiento del request como autorización o registro de errores.

 

APIs de Servidor

En respuesta a los problemas de rendimiento de CGI, diferentes compañías han desarrollado APIS para sus servidores. Los dos más relevantes son NSAPI de Netscape e ISAPI de Microsoft. El servidor Apache también tiene un API.

Las aplicaciones asociadas al API del servidor pueden correr mucho más rápido que los programas CGI. El problema del Inicio / iniciación se ha mejorado, ya que la aplicación corre en un proceso dedicado de servidor y se persiste entre las solicitudes. Las API del servidor Web, ofrecen mucha más funcionalidad que CGI, cada persona puede escribir extensiones que realizan control de accesos, acceder a los archivos de registro del servidor, y pueden conectarse en otras etapas del procesamiento del request. 

 

Entonces que es  FastCGI?

La interface FastCGI combina los mejores aspectos de CGI y las APIs propietarias. Como CGI, las aplicaciones FastCGI corren en procesos separados e independientes. Las ventajas de FastCGI's incluyen:

· Rendimiento. Los procesos FastCGI son persistentes –se re usan en manejar múltiples solicitudes. – Esto resuelve los problemas de rendimiento de CGI de crear nuevos procesos para cada request.

· Simplicidad, fácil migración desde CGI. La librería de aplicación FastCGI simplifica la migración de las aplicaciones CGI existentes. Las aplicaciones construidas con FastCGI pueden correr programas CGI para compatibilidad con Web Servers antiguos.

· Independencia de Language. Como CGI, las aplicaciones FastCGI pueden ser escritas en cualquier lenguaje.

· Independencia de Procesos. Una aplicación FastCGI con errores no puede corromper el core del servidor web o alguna otra aplicación. Una aplicación FastCGI no puede robar ningún secreto (como las llaves de sesión para encripción) del servidor Web.

· No-propietario. FastCGI es soportado por todo los productos del Open Source del Mercado, incluyendo apache, NCSA y ahora es soportado por servidores comerciales de Microsoft y Netscape.

· Independencia Arquitectónica. La interface FastCGI no está atada a ninguna arquitectura particular de servidor. Cualquier servidor puede implementar la interface FastCGI. De igual manera, FastCGI no impone ninguna arquitectura a la aplicación: las aplicaciones pueden ser single o multi-threaded, sin importar la arquitectura de hilos del servidor web.

· Soporte para computación distribuida. FastCGI prove soporte para correr aplicaciones remotamente, lo cual es útil para distribuciones de carga y manejo externo de web sites.

 

La interface FastCGI

La funcionalidad que provee la interface FastCGI es muy similar a la que provee CGI. Para entender mejor el protocolo FastCGI. El procesamiento de peticiones CGI es así:

1. Para cada Request, el servidor crea un nuevo proceso y el proceso se inicializa por sí mismo.

2. El servidor web pasa la información del request( como host remoto, nombre de usuario, encabezados HTTP, etc) a las variables  de entorno del programa CGI.

3. El web server envía cualquier input del cliente  (como valores entrados por el usuario en un formulario HTML) al estándar input del programa CGI.

4. El programa CGI escribe cualquier output para que sea retornado al cliente como salida estándar. La información de error es escrita por el web server.

5. Cuando el proceso CGI se cierra, la solicitud queda completa.

FastCGI es conceptualmente muy similar a CGI, con dos diferencias principales:

· Los procesos FastCGI son persistentes: después de finalizar una solicitud, los procesos quedan en espera en vez de finalizar. 

· En vez de usar variables de ambiente del sistema operativo y pipes,  el protocolo  FastCGI multiplexa la información del ambiente, el input  estándar, el output estándar y error sobre una conexión full-duplex. Esto permite a los programas FastCGI correr en maquinas remotas, usando conexiones TCP entre el servidor web y las aplicaciones FastCGI.

El procesamiento de una solicitud en una aplicación single-threaded FastCGI ocurre así :

1. El Web server crea la aplicación FastCGI para manejar las solicitudes al servidor. El proceso puede ser creado en el inicio o creado por demanda.

2. El programa FastCGI seinicializa  por sí mismo, y espera una nueva conexión con el web server.

3. Cuando llega una solicitud de un cliente, el servidor  web abre una conexión a los procesos FastCGI. El servidor envía la información de ambiente y el input estándar sobre la conexión.

4. el proceso FastCGI envía la salida estándar y la información de errores de regreso al servidor sobre la misma conexión. 

5. Cuando el proceso  FastCGI cierra la conexión, la solicitud se completa. El proceso FastCGI queda a la espera de otra conexión desde el servidor web.

Las FastCGI pueden correr localmente  (en la misma máquina que el web server) o remotamente. Para aplicaciones locales, el servidor usa un  full-duplex pipe para conectarse con el proceso de la aplicación  FastCGI . Para aplicaciones remotas, el servidor usa conexiones TCP.

Las aplicaciones FastCGI pueden ser  single-threaded or multi-threaded. para aplicaciones  single threaded, el servidor web mantiene un pool de procesos  (si la aplicación corre localmente) para manejar las solicitudes de los clientes. El tamaño del Pool es configurable por el usuario. Las aplicaciones FastCGI Multi-threaded pueden recibir múltiples conexiones del web server y manejarlas de forma simultánea en un solo proceso.  (De esta forma lenguajes, con soporte para multi thead, garballe collection, entre otros, lo hacen lenguajes naturales para implementar aplicaciones multithread usando FastCGI)

 

Roles de Aplicación.

Un problema importante con CGI es su funcionalidad limitada: los programas CGI solo proveen respuestas simples al request.  FastCGI provee funcionalidad ampliada con soporte para tres diferentes roles de aplicación: 

· Responder. este es el rol básico en  FastCGI y corresponde a la funcionalidad básica ofrecida por CGI hoy. 

· Filter. las aplicaciones FastCGI filtran los archivos solicitados al web server antes de que sean enviados al cliente. 

· Authorizer. El programa FastCGI realizan una decisión de control de acceso para el request ( por ejemplo realizando una búsqueda a la base de datos del tipo Usuario/password).

Otros roles serán definidos en el futuro. Por ejemplo,  un rol "logger" podría ser útil, donde el programa FastCGI podría recibir el registro del log del servidor para procesamiento y análisis en tiempo real. 

 

Que tan rápido es FastCGI?

La respuesta depende de la aplicación, algunas pruebas hechas en internet muestra lo siguiente:

En esta medición se usa un archivo, una solicitud CGI y una fastCGI, usando una aplicación que retorna un número fijo de bytes. 

Archivo  

21ms + 0.19ms per Kbyte

FastCGI

22ms + 0.28ms per Kbyte

CGI

59ms + 0.37ms per Kbyte

Con este dato podemos trata de calcular la velocidad después de migrar una aplicación típica CGI de base de datos a FastCGI, asumiendo que la aplicación toma 50ms para inicializar las conexiones a las bases de datos y genera 5k de datos. Los resultados finales pueden calcularse así: 

CGI

59ms + 50ms + (0.37ms)(5) = 111ms

FastCGI

22ms + (0.28ms)(5) = 23ms

En esta prueba, FastCGI tuvo una ventaja de rendimiento de 5x sobre CGI, más que nada debido a no tener que crear e iniciar un nuevo proceso para cada solicitud.

 

En resumen

FastCGI es un protocolo estándar que permite a ejecutables que usen Frameworks CGI interactuar con un Web Server.

La mayor diferencia con el Protocolo CGI Estándar es que FastCGI rehúsa los Procesos CGI para múltiples peticiones, lo que incrementa el rendimiento en comparación con CGI.

El soporte de IIS para FastCGI permite a IIS hospedar programas CGI normales como PHP, o Ruby On Rails, usando el protocolo FastCGI, ofreciendo alto rendimiento y estabilidad en ambientes de producción

Para usar el soporte  FastCGI en IIS se requieren tres elementos:

· El web server IIS (IIS5.1, IIS6, and IIS7).

· El componente FastCGI para IIS

· EL programa CGI que será hospedado.

Como funciona?

El servidor web despacha las solicitudes http que se han realizado a su aplicación usando el componente FastCGI, este a su vez lanza el programa ejecutable CGI y reenvía el request para que sea procesado. Una vez la solicitud se procesa y la respuesta se finaliza y es retornada al servidor y al cliente, el proceso CGI es usado para llamadas siguientes. Esto permite evita las penalidades de alto rendimiento de iniciar un nuevo proceso para cada solicitud, lo que resulta en mucho mejor rendimiento y escalabilidad en ambientes de producción.

El protocolo FastCGI es estándar si quiere tener más información sobre FastCGI puede ver más aquí. http://www.fastcgi.com/devkit/doc/fcgi-spec.html.

El paquete FastCGI es totalmente compatible con la distribución actual y oficial  PHP 5.x disponible para Windows desde  www.php.net/downloads. También puede usar el preview de Fast CGI con la instalación existente de  PHP 5.x (sin embargo usar la versión ThreadSafe incrementa el rendimiento hasta un 30%)

La versión 5.2.3 también contiene las mejoras desarrolladas por Zend para mejorar el rendimiento del motor de PHP sobre Windows.

Espero que sea de Ayuda

Juan Carlos Peláez

MCTS

Miembro del Microsoft Speaker Group Andino  

Miembro del Microsoft Influencers Group de Colombia.

Keywords: PHP, FastCGI, Windows Vista, Windows 2008, IIS7, Arquitectura.

Tuesday, August 21, 2007 9:20:38 AM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Arquitectura | Articulos de Desarrollo | FastCGI | IIS7 | PHP | Windows Server 2008 | Windows Vista
# Thursday, August 16, 2007

Con el lanzamiento de Windows 2008 Beta3 (del que Gattaca es Early Adopter gracias a Invitación de Microsoft Colombia) hemos comenzado la fase final de la migración de nuestras aplicaciones para esta plataforma. Sin embargo hay algunas cosas nuevas en este servidor que merecen verse con atención, una de ellas es el soporte nativo de PHP y otros lenguajes de Script como IronRuby a través de una iniciativa conjunta de Microsoft y Zend para desarrollar algo llamado FastCGI que es una nueva forma mejorada para multiprocesamiento de CGI.

 

En este post comentaremos sobre la experiencia de instalar y correr aplicaciones de PHP sobre IIS7 usando FastCGI.

 

El Ambiente.

 

Esto puede hacerse en Windows 2008 Beta3 que tiene el soporte FastCGI nativo ó

En una maquina corriendo Windows Vista con IIS7, en este caso debe instalarse el soporte FastCGI CTP 2 disponible en este link

 

También hay que contar con PHP, este puede descargarse de http://www.php.net/ , aunque hay gente corriendo esto con php4, yo lo hice con la versión 5.2, en esta página pueden descargarse diversas versiones pero la recomendación es bajar la que se llama PHP 5.2.3 Non-thread-safe Win32 binaries [9,523Kb] - 01 June 2007, esta versión está optimizada para correr con IIS7 y FastCGI. (Las otras también corren y muy bien, pero esta tiene un rendimiento 30% superior según las pruebas realizadas por Microsoft y Zend)

 

La Instalación

 

El PHP

 

Descomprimir el PHP en una ruta sin espacios en el nombre, por ejemplo c:\php o d:\php, renombrar el archivo php.ini-recomended por php.ini, abrir el archivo php.ini y cambiar las siguientes variables:

 

Redirect cgi a falso (cgi.force_redirect = 0), modificar la ruta de las extensiones (extension_dir = "D:\PHP\ ext") (o la ruta en donde haya puesto el PHP),

También debe crear las variables de Entorno (En Panel de Control, Sistema, Configuración Avanzada del Sistema, Opciones Avanzadas, Variables de Entorno) Agregar la variables de Usuario “PHPRC = d:\php\php”, agregar en la variable del Sistema Path la ruta: “d:\php\php”

Con eso el PHP debería estar listo para correr en el modo anterior de PHP y también en el modo nuevo. Algunas Variables opcionales que hemos configurado que podían ser de utilidad (short_open_tag = On, error_reporting = E_ALL & ~E_NOTICE, upload_max_filesize = 10M, session.save_path = "D:\PHP\TempSessions")

Finalmente hay que darle permisos en la carpeta PHP al usuario del IIS Process.

 

El FastCGI

 

Descomprimir el archivo que descargo en alguna ruta del Disco, por ejemplo D:\FastCGI

En el archivo de readme.txt vienen las instrucciones muy sencillas que son básicamente:

Instalar FastCGI corriendo desde la consola de comandos con permisos de administrador:

fcgisetup.exe /install

Relacionar el Php con el FastCGI:

fcgisetup.exe /add d:\php\php-cgi.exe PHP, (La ruta donde dejo el PHP)

Listo, esto debería crear los módulos y handlers necesarios en el IIS 7.0, para verificar que quedo correctamente instalado debería encontrar algo como esto en su consola de administración del IIS7.

En la lista de Módulos (por vista de Características) un modulo nativo llamado iisfcgi apuntando a C:\Windows\system32\inetsrv\iisfcgi.dll,

En la lista de asignaciones de controladores (Handlers) una asignación de Script llamada PHP-iisfcgi apuntando a su PHP (por ejemplo: D:\PHP\php-cgi.exe) con una ruta de acceso de solicitudes apuntando a los archivos PHP (*.PHP).

Si tienen otros manejadores apuntando a *.PHP seguramente ya tenia php corriendo o trato de hacer algo similar a esta instalación. En nuestra instalación eliminamos los modulos y controladores asociados a PHP que no eran FastCGI. (Pero antes de hacer esto usted debe entender correctamente que es lo que hacen los módulos y controladores que está eliminando y por que los elimina).

 

Si llego hasta aquí, toda parece está bien instalado y configurado, puede crear una aplicación apuntando a un directorio y crear una página PHP sencilla como esta para probar (modinfo.php que contiene unicamente "<?php phpinfo(); ?>", esta página vista desde el browser debería mostrarle el status del PHP y en la línea Server Api indicar :

 

Server API : CGI/FastCGI

 

La Aplicación.

 

Ahora que ya está corriendo aplicaciones PHP en IIS7 y con el nuevo soporte mejorado de alto rendimiento de PHP FastCGI puede ejecutar sus aplicaciones PHP, nosotros corremos Sugar CRM versión 4.5.1 sobre SQL Server. (Como distribuidores y consultores de Sugar CRM es muy útil poder ofrecer a nuestros clientes el producto sobre IIS7 y estar listos para cuando vayan a los nuevos servidores Windows 2008, pero otra razón importante de escoger esta aplicación es que Sugar ha venido trabajando desde hace más de un año  con Microsoft para ofrecer lo mejor del mundo open source sobre la plataforma Microsoft, esto es soporte mejorado para IIS, optimización para integración con el Directorio Activo, y soporte para SQL Server (incluyendo Express, Standard y Enterprise) y Soporte para el Modelo de Licenciamiento Microsoft Community License. (Parte de la iniciativa Microsoft Shared Source Initiative) entre otros aspectos.

 

En otro post hablaremos de por que esto funciona mejor que antes (las razones) y como correr Ruby o algun otro lenguaje de Scripting usando FastCGI.

Nota: Tengo que agradecer a Ivan Suárez y German Cárdenas del Grupo Commercial Open Source de Gattaca quienes son expertos en PHP, y me han ayudado mucho en la instalación, configuración y comprensión de los conceptos propios de PHP. Gracias Muchachos.

Espero que sea de Ayuda.

 

Juan Carlos Peláez

MCTS

KeyWords: PHP, Windows Vista, IIS7, Windows Server 2008 Beta 3, FastCGI, Sugar CRM, Juan Peláez

Thursday, August 16, 2007 12:41:06 PM (SA Pacific Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Articulos de Desarrollo | FastCGI | IIS7 | PHP | Sugar CRM | Windows Server 2008 | Windows Vista
Contácteme
mail: jpelaez at juanpelaez.com
Archivo
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
FeedBurner
Maps
Locations of visitors to this page
Sponsors
Acerca de...

Aviso Legal
Las opiniones expresadas en este sitio representan el punto de vista de Juan Peláez sobre diferentes temas y no representan la posición de Studiocom.com.Inc, Microsoft. o de cualquier otra compañía que haya contratado los servicios de consultoría de Juan Peláez

© Copyright 2008
Juan Carlos Peláez
Sign In

Technorati Profile
Estadísticas
Total Posts: 69
This Year: 40
This Month: 2
This Week: 0
Comments: 10
All Content © 2008, Juan Carlos Peláez
El tema 'Business' para DasBlog fue creado por Christoph De Baene (delarou) y modificado para espa�ol por Juan Peláez
Powered by FeedBurner