Posts Tagged ‘PHP’

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: Construir un servidor web con IIS7.5 Server Core (II)

Tuesday, February 23rd, 2010

Habilitando ASP.NET y PHP en el servidor web

Una vez que tenemos habilitado los servicios de IIS en Windows Server 2008 R2 Server Core (puedes verlo en el post anterior How To: Construir un servidor web con IIS7.5 Server Core (I)), comenzamos a habilitar las tecnologías de desarroll0 y scripting que queremos que soporte nuestro servidor web. Para esta entrega, veremos cómo configurar ASP.NET y PHP.

Antes de comenzar, debemos descargar los paquetes correspondientes a PHP y colocarlos en un directorio en el equipo o máquina virtual donde estamos configurando el servidor.

Configurando ASP.NET

Para habilitar ASP.NET primero debemos configurar algunos componentes asociados como el .NET Framework, filtros y extensiones ISAPI. La ejecución de comandos quedaría de la siguiente forma:

dism /online /enable-feature /featurename:NetFx2-ServerCore
dism /online /enable-feature /featurename:NetFx3-ServerCore
dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility
dism /online /enable-feature /featurename:IIS-ASPNET

Configurando PHP

Para habilitar PHP debemos validar primero que esté habilitado el component IIS-CGI . Descargamos PHP (al momento de escribir este artículo hice la prueba con la versión 5.2.12) y lo copiamos en el servidor que estamos trabajando, luego ejecutamos 2 comandos donde el primero registra PHP en el ambiente de ejecución de FastCGI y el segundo configura la extension. Navegamos hasta el directorio C:\Windows\System32\inetsrv y ejecutamos lo siguiente:

appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\php\php-cgi.exe']
appcmd set config /section:system.webServer/handlers /+[name='PHP-FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='C:\php\php-cgi.exe',resourceType='Either']

Podemos probar el funcionamiento de PHP creando un script sencillo y colocandolo en c:\inetpub\wwwroot . Podemos utilizar el siguiente script para el test:

<?php
phpinfo();
?>

Otras entregas relacionadas:

Entrega I: Habilitando los servicios de Internet Information Services (IIS)

Entrega III: Habilitando funciones de cache en el servidor web y para PHP

Saludos,

Presentación “Todo acerca de PHP sobre IIS/Windows”

Thursday, February 18th, 2010

Si solo tienes tiempo para las respuestas, esta presentación te sirve para saber de forma resumida las piezas claves para ejecutar PHP sobre IIS.

Saludos,

Más recursos y ejemplos PHP-Microsoft disponibles

Monday, January 11th, 2010

 Ya el soporte de PHP sobre Windows y la interacción de esta tecnología de desarrollo con tecnologías Microsoft es una realidad extendida y en aumento. Hoy en día están presentes recursos que abarcan desde la configuración básica, pasando por mejores prácticas de entonación en servidores hasta consumo de servicios y tecnologías como Silverlight y Bing Maps. Acá les dejo contenido relacionado de 3 sitios web de mucha utilidad:

Interoperability @ Microsoft (http://blogs.msdn.com/interoperability/archive/tags/PHP/default.aspx)
Blog oficial del equipo encargado de interoperabilidad en Microsoft y el desarrollo y anuncio de nuevos escenarios

Interoperability Bridges (http://www.interoperabilitybridges.com/projects/tag/PHP.aspx)
Portal donde se encuentran la mayor cantidad de escenarios de interoperabilidad desarrollados y aportados por distintas organizaciones tecnológicas

Codeplex (http://www.codeplex.com/site/search?projectSearchText=php)
Repositorio de proyectos open source aportados por la comunidad y empresas

Saludos,