Instalación de Lighttpd y PHP bajo Windows

Lighttpd (alias Lighty) es una alternativa rápida y liviana al ya muy conocido servidor de páginas Apache y que incluye soporte para diversas características como FastCGI, SCGI, Auth, Output-Compression y URL-Rewriting entre otras. La idea de este artículo es la de experimentar con el trabajando con PHP para empezar a determinar si es o no idóneo para despliegues de aplicaciones web en equipos de bajo perfil.

Instalación de LightTPD.

Descargar la versión apropiada desde el proyecto WLMP: http://en.wlmp-project.net/downloads.php. Para este caso se eligió la versión ZIP de la versión 1.4.20-1 con soporte SSL de sólo el servidor web (sin MySQL ni demás): LightTPD-1.4.20-1-Win32-SSL.zip.

Descomprimirla y ubicar el directorio LightTPD en su ubicación final.

Ejecutar el script de prueba TestMode.bat.

Si utiliza Windows Vista el sistema le solicitará confirmar el acceso de la aplicación con un diálogo similar al mostrado a continuación. Presione el botón Desbloquear para continuar e incluir la excepción “A fast, secure and flexible webserver” en el firewall.

Advertencia del firewall
Advertencia del firewall

Una ventana de Símbolo del sistema se deberá haber abierto mostrando la salida estándar y salida de error del servidor. Accediendo a http://localhost/ deberá mostrarse una página web como la siguiente.

Instalación exitosa
Instalación exitosa

Por defecto el árbol de archivos públicos se ubica en <ruta>LightTPDhtdocs y las opciones de configuración bajo <ruta>LightTPDconf.

  • lighttpd-inc.conf – archivo de configuración por defecto.
  • lighttpd-srv.conf – información de registro para el servicio.
  • lighttpd-tag.conf – información de etiquetado del servidor.
  • lighttpd-auth.conf – archivo de autenticación de usuarios para mod_auth.

Hasta ahora Lighttpd está ocupando 1480KB de memoria.

Consumo de memoria #1
Consumo de memoria #1

Presione la combinación CTRL+C en la ventana de Símbolo del sistema para finalizar la ejecución de prueba.

Configuración de PHP como FastCGI.

Ejecutar PHP como FastCGI versus CGI convencional acostumbra a ser mas eficiente ya que a diferencia de CGI que debe invocar una instancia de php-cgi.exe cada vez que se procesa un archivo .php, FastCGI administra una serie de procesos hijos que se ejecutan constantemente en background y que pueden ser accedidos de la manera equipo:puerto, sockets de Unix o pipes.

Las siguientes modificaciones se realizarán en el archivo <ruta>LightTPDhtdocslighttpd-inc.conf.

Activar el módulo mod_fastcgi removiendo el comentario (#) al comienzo de la línea.

server.modules              = (

                                "mod_access",

                                "mod_accesslog",

                                "mod_alias",

                                "mod_fastcgi",

                                "mod_ssi",

                                "mod_status",

                               )

Modifique la ubicación del árbol de directorios (document-root) especificando su ubicación absoluta en lugar de la relativa.

server.document-root        = "<ruta>/LightTPD/HTDOCS/"

Active la configuración del fastcgi.server removiendo los comentarios de las líneas apropiadas y configúrelo de la siguiente manera.

fastcgi.server = ( ".php" =>

                   ( "localhost" =>

                     (

                       "host" => "127.0.0.1",

                       "port" => 10000,

                       "broken-scriptfilename" => "enable"

                      )

                    )

                 )

Instalación de PHP.

Descargue los paquetes de la distribución de PHP que requiera desde el sitio de descargas http://www.php.net/downloads.php.

Para este caso se utilizó el paquete PHP 5.2.6 installer únicamente.

Ejecute el archivo recién descargado.

Elija una ubicación (destination folder) de acuerdo a sus necesidades. Para este caso será <ruta>LightTPDPHP.

Como tipo de servidor (Web Server Setup) elija Otro CGI (Other CGI) ya que se va a realizar una instalación independiente de FastCGI.

En la selección de items para instalar (Choose Items to Install) bajo la rama Extensions seleccione las extensiones que requiera. Para esta instalación se eligieron los siguientes.

  • Crack.
  • Curl.
  • EXIF.
  • GD2.
  • Haru PDF functions.
  • htscanner.
  • Mcrypt.
  • Mimetypec.
  • MSSQL.
  • MySQL.
  • MySQLi.
  • OpenSSL.
  • PDO.
    • Firebird.
    • Microsoft SQL Server.
    • MySQL.
    • SQLite.
  • PHPDoc.
  • SMTP.
  • SOAP.
  • Sockets.
  • Standard PHP Library.
  • SQLite.
  • ssh2.
  • timezonedb.
  • uploadprogress.
  • zip.

Edite el archivo <ruta>LightTPDPHPphp.ini y active la variable cgi.fix_pathinfo removiendo el comentario (#).

cgi.fix_pathinfo=1

Creación de los scripts de inicio y parada.

Los scripts de inicio y parada utilizan RunHiddenConsole que es una herramienta para ocultar las consolas producidas durante la ejecución de php-cgi y de LightTPD. El archivo ejecutable RunHiddenConsole.exe se debe copiar en el directorio <ruta>LightTPD.

Reemplazar <ruta> con la ubicación apropiada según la ruta donde se realizó la instalación anterior.

Script de inicio: _start.bat.

@ECHO OFF

SET RUTA=<ruta>LightTPD

ECHO Starting PHP/FastCGI ...

%RUTA%RunHiddenConsole.exe %RUTA%PHPphp-cgi.exe -b 127.0.0.1:10000

ECHO Starting LightTPD...

%RUTA%lighttpd.exe -f %RUTA%conflighttpd-inc.conf -m lib

Script de parada: _stop.bat.

@ECHO OFF

SET RUTA=<ruta>LightTPD

ECHO Stopping LightTPD ...

%RUTA%binprocess.exe -k lighttpd.exe >nul

ECHO Stopping PHP/FastCGI ...

%RUTA%binprocess.exe -k php-cgi.exe >nul

Prueba de funcionamiento.

En el directorio <ruta>LightTPDhtdocs cree el archivo test.php con el siguiente contenido.

<?php

phpinfo ();

?>

Consultar la siguiente dirección utilizando un navegador web.

http://localhost/test.php

Si la configuración del servidor fue correcta deberá obtenerse una página similar a la siguiente.

Información de la configuración de PHP
Información de la configuración de PHP

Nótese como el campo Loaded Configuration File hace referencia a la ubicación precisa del archivo php.ini que se encuentra utilizando la instancia del servidor web. Esta información resulta muy útil a la hora de depurar problemas de configuración.

Recursos utilizados.

Después de realizar los procedimientos descritos anteriormente se obtienen la siguiente utilización de recursos de memoria.

  • LightTPD.exe – 1628KB.
  • php-cgi.exe – 8200KB.

Debe tenerse en cuenta que esta medida se realiza sin usuarios accediendo al sistema ni realizándose algún proceso, sin embargo es promisoria.

Enlaces:

Leave a Reply

Your email address will not be published. Required fields are marked *