LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Lighttpd con soporte para PHP a través tanto de CGI como de FastCGI. Como su nombre lo indica, FastCGI es preferible.

¿Soporta cachers opcode?

como APC, TurckMM, XCache y otros

¡SÍ! Incluso si otros documentos dicen que no funcionan en CGI. Bajo lighttpd, PHP se ejecuta normalmente como FastCGI que soporta cachers como mod_php4 en Apache.

Podría también estar interesado en leer el soporte para el modo FastCGI?

Instalación

Windows.

PHP en modo CGI

En primer lugar es necesario instalar Lighttpd para Windows . Luego hay que editar C:\lighttpd\etc\lighttpd.conf, quite la línea "mod_cgi"  y añadir esta línea:

cgi.assign = ( ".php" => "c:/php/php-cgi.exe" )

Ten cuidado, no puede haber ningún espacio en la ruta a PHP-CGI en el fragmento anterior. Guarda y reinicia lighttpd. Abra su navegador y vaya a http://localhost/ , usted debe tener una página de bienvenida. Podrá poner sus archivos PHP en C:\htdocs\lighttpd - Para probar PHP, basta con crear un archivo llamado index.php, guárdelo en el directorio raíz Lighttpd (C:\htdocs\lighttpd) y pega este contenido a este archivo:

<?php
phpinfo();
?>

Acceda a http://localhost/, debe conseguir una página que muestra todas las variables de PHP y la información.
Tenga en cuenta que FastCGI no funciona en Windows en por ahora. ¡Buena suerte!

PHP en modo CGI Fast

Descargue la última versión para Windows de Lighttpd http://en.wlmp-project.net/downloads.php?cat=lighty&type=ssl
Descargue la última versión de PHP para Windows de http://windows.php.net/download/

Expandir la distribución por lo que tiene una estructura de directorios similar a esta:

 c:\lighttpd
 c:\PHP (asegúrese  de  renombrar  php.ini-production  a  php.ini)

Abierto c:\LightTPD\lighttpd.conf y descomentar la línea "mod_fastcgi".

ADVERTENCIA SOBRE PUERTOS: Muchas guías sugieren la creación de PHP para el puerto 9000. La extensión XDebug utiliza puerto 9000 de forma predeterminada.

Alrededor de la línea 150 de lighttpd.conf (usted puede buscar "módulo FastCGI"), descomentar las siguientes líneas y modificarlos para que coincida con lo siguiente:

#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
## ... and PHP_FCGI_MAX_REQUESTS = 0 environment variable in system properties
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "host" => "127.0.0.1",
                                   "port" => 9123
                                 )
                               )
                             )

## map multiple extensions to the same fastcgi server
fastcgi.map-extensions     = ( ".php3" => ".php",
                               ".php4" => ".php",
                               ".php5" => ".php",
                               ".phps" => ".php",
                               ".phtml" => ".php" )

Host y los puntos del puerto a la dirección IP y el puerto en el que el demonio FastCGI (en este caso, PHP-CGI) se escucha.

También hay un bug en la versión de Windows que requiere otra edición en lighttpd.conf. Alrededor de la línea 50, cambie las líneas siguientes:

#### include important configuration files
## include path variables
include "variables.conf" 
## include mimetype mapping file
include "mimetype.conf" 
## include virtual hosts (optional)
#include "vhosts.conf"

a

#### include important configuration files
## include path variables
include "c:/lighttpd/conf/variables.conf" 
## include mimetype mapping file
include "c:/lighttpd/conf/mimetype.conf" 
## include virtual hosts (optional)
#include "c:/lighttpd/conf/vhosts.conf" 

Lo siguiente es iniciar el demonio php-cgi en el directorio de php:

c:\php\php-cgi.exe -b 127.0.0.1:9123


Y luego (re)iniciar el servidor web lighttpd.

cd c:\lighttpd && lighttpd.exe -f conf\lighttpd.conf -m modules

Ahora podrá poner sus archivos PHP en C:\lighttpd\htdocs.   Lighttpd creado para Windows tiene un index.php en esta carpeta para realizar pruebas.

Acceda a http://localhost/, debe conseguir una página que muestra todas las variables de PHP y la información.

Si no, puede que tenga que configurar explícitamente el docroot .

Una vez que haya probado la configuración, debe ejecutar PHP y Lighttpd con el siguiente comando antes de continuar:

taskkill /f /IM lighttpd.exe && taskkill /f /IM php-cgi.exe

Inicializar PHP-FastCGI y Lighttpd con un archivo por lotes

Si todo está bien, podría escribir un archivo por lotes para iniciar / parar el servidor y el demonio de PHP al mismo tiempo. Tenga en cuenta que debe tener la RunHiddenConsole.exe en su camino, también estos archivos deben ser colocados en c:\LightTPD

Start-LightTPD.bat

@ECHO OFF
ECHO Starting PHP FastCGI...
cd c:\php
set PHP_FCGI_MAX_REQUESTS=0
RunHiddenConsole.exe c:\PHP\php-cgi.exe -b 127.0.0.1:9123
ECHO Starting LightTPD...
ECHO.
cd c:\lighttpd
lighttpd.exe -v
ECHO.
lighttpd.exe -f conf\lighttpd.conf -m modules
EXIT

Stop-LightTPD.bat

@ECHO OFF
ECHO Stopping LightTPD...
taskkill /f /IM lighttpd.exe
ECHO Stopping PHP FastCGI...
taskkill /f /IM php-cgi.exe
ECHO.
EXIT

Ejecutar PHP-FastCGI y Lighttpd como servicios

Lo primero que se necesita es el binario WinSW de http://maven.jenkins-ci.org/content/repositories/releases/com/sun/winsw/winsw/

El "winsw-{VERSION} bin.exe" necesita ser guardado en la carpeta que contiene php-cgi.exe (normalmente c:\php), y tiene que ser renombrado a "pwinsw.exe".

Entonces pwinsw.exe hay que copiarlo dentro de la carpeta Lighttpd (normalmente C:\lighttpd) y cambiar su nombre a lwinsw.exe (Letra L minúscula, No I (i mayúscula)).

En la carpeta de PHP, cree un archivo xml "pwinsw.xml" con el siguiente contenido:

<service>
  <id>PHP</id>
  <name>PHP</name>
  <description>PHP</description>
  <executable>C:\php\php-cgi.exe</executable>
  <stopexecutable>C:\php\php-stop.cmd</stopexecutable>
  <env name="PHPRC" value="c:\php" />
  <env name="PHP_FCGI_MAX_REQUESTS" value="0" />
  <logpath>C:\lighttpd\logs</logpath>
  <logmode>roll</logmode>
  <startargument>-b 127.0.0.1:9123</startargument>
  <startargument>-cc:\php\php.ini</startargument>
</service>


En la carpeta de PHP, también debería crear un archivo por lotes "php-stop.cmd" con el siguiente contenido:

taskkill /f /IM php-cgi.exe

En la carpeta Lighttpd, crear un xml "lwinsw.xml" (Letra L no, letra I) con el siguiente contenido:

<service>
  <id>Lighttpd</id>
  <name>Lighttpd</name>
  <description>Lighttpd</description>
  <executable>C:\lighttpd\lighttpd.exe</executable>
  <stopexecutable>C:\lighttpd\lighttpd-stop.cmd</stopexecutable>
  <logpath>C:\lighttpd\logs</logpath>
  <logmode>roll</logmode>
  <startargument>-fc:/lighttpd/conf/lighttpd.conf</startargument>
  <startargument>-mc:/lighttpd/modules</startargument>
  <startargument>-D</startargument>
</service>


En la carpeta Lighttpd, también crear un archivo por lotes "lighttpd-stop.cmd" con el siguiente contenido:

taskkill /f /IM lighttpd.exe

 

Abra una ventana del símbolo del sistema y ejecute el siguiente comando:

c:\lighttpd\lwinsw.exe install && c:\php\pwinsw.exe install && net start Lighttpd && net start PHP


Si hay algunos servicios denominados "Lighttpd" o "PHP", o si ambas copias de winsw.exe se llaman "winsw.exe" y no "lwinsw.exe" y "pwinsw.exe", este paso no funcionará.

En este punto, los servicios de Lighttpd y PHP deben estar instalados.

Start Lighttpd: net start lighttpd
Stop Lighttpd: net stop lighttpd
Check Lighttpd status: c:\lighttpd\lwinsw.exe status
Start PHP: net start PHP
Stop PHP: net stop PHP
Check PHP status: c:\PHP\pwinsw.exe status

Ahora puede visitar http://localhost/ y usted debería ver la página de información de PHP.



 

Sistemas Unix

''Startingpoint:''' Lighttpd está ya [wiki: TutorialInstallation instalado y funcionando]

En primer lugar usted necesita un PHP que tenga soporte para FastCGI. Dependiendo de su
distribución es posible que ya lo tenga:

! Arch Linux

Leer http://wiki.archlinux.org/index.php/Fastcgi_and_lighttpd

FreeBSD

#!ShellExample
$ cd /usr/ports/lang/php5
# make install clean

Asegúrese de comprobar la opción "uso como FastCGI" en la pantalla de configuración. Si no aparece la pantalla de configuración, ya sea por que estés utilizando una versión antigua del árbol de ports, o la necesidad de ejecutar "make config". Si estás usando PHP 4 o una versión anterior de PHP 5, puede que tengas que utilizar www/php4-cgi o un port similar en lugar del nuevo port.

PC-BSD

Descargue el asistente de configuración auto-ejecutable , haga doble clic en el archivo y siga las instrucciones del asistente de configuración. Usted tendrá un "www" del directorio bajo el directorio inicial para poner sus páginas web. Tendrá la posibilidad de lanzar lighttpd al iniciar el sistema de forma automática, y soporte para uno o varios usuarios. Una vez que hayas terminado, abre http://localhost/ en tu navegador favorito y usted debería ver la pantalla de bienvenida.

Gentoo

Asegúrese de que el parámetro USE flag  'cgi' está habilitado.

#!ShellExample
$ emerge -av dev-lang/php

Si no es así, agregue el parámetro USE en / etc / make.conf o simplemente para el ebuild dev-lang/php.

#!ShellExample
# echo dev-lang/php cgi >> /etc/portage/package.use

XCache está también en el árbol oficial (como de 02.03.2007), por lo que accedan a dev-php5/xcache simplemente.



Debian / Ubuntu

Debian / Ubuntu proporciona una versión habilitada para FastCGI.

#!ShellExample
# apt-get install php4-cgi

Si estás usando php5-cgi, todo lo que necesitas es cambiar su "bin-path" en su configuración (Debian utiliza /usr/bin/php4-cgi por defecto).



pkgsrc (NetBSD, DragonFlyBSD y otros)

Añadir

PKG_OPTIONS.php = fastcgi

a su mk.conf. PHP se puede encontrar en www/php4 y lang/php5. El binario fastcgi se encuentra en / usr / pkg / libexec / cgi-bin / php

 

Otros

Descargar una fuente tar-ball de http://www.php.net/ y configurarlo con al menos estos valores:

#!ShellExample
$ ./configure \
   --enable-fastcgi \
   --enable-discard-path \
   --enable-force-cgi-redirect

Si quiere tener el mismo PHP como ahora, utilizando una configuración de mod_php en algún lugar llame a otro

#!php
<?php phpinfo(); ?>
  • copiar las opciones de configuración de la salida de la secuencia de comandos
  • Elimine las opciones`--with-apxs@` y `--with-apxs2`@
  • añadir las tres opciones de arriba.
    Construye PHP ahora llamando a `@make ` and ` make install `@ y ver si puede encontrar un binario de php que responde:
  •  
#!ShellExample
$ php -v
PHP 5.0.3 (cgi-fcgi) (built: Dec 21 2004 12:59:18)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
    with eAccelerator v0.9.3, Copyright (c) 2004-2005 eAccelerator, by eAccelerator

o algo así. El ` (cgi-fcgi) ` es la parte importante. El binario también se podría llamar `@php-cgi '@.
así que hacer algo como php-cgi -v para ver el banner (cgi-fcgi).

#!ShellExample
$ php-cgi -v
PHP 4.4.2 (cgi-fcgi) (built: Jul 21 2006 15:45:58)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

Si usted todavía no puede encontrar lo siga este consejo:

#!ShellExample
$ ls sapi/cgi/php*

 

Configuración

Añada esta línea:

cgi.fix_pathinfo = 1

a tu fichero php.ini, y asegúrese de mod_fastcgi se carga en su lighttpd.conf:

server.modules = (
                   "mod_fastcgi",
                 )

A continuación, agregue esta sección básica en el mismo archivo:

fastcgi.server = ( ".php" => (( 
                     "bin-path" => "/path/to/php-cgi",
                     "socket" => "/tmp/php.socket" 
                 )))

Un poco más complejo es este valor que trata la melodía de algunas opciones más. Si usted necesita PATH_INFO el sroken-scriptfilename es
para usted.

fastcgi.server = ( ".php" => (( 
                     "bin-path" => "/path/to/php-cgi",
                     "socket" => "/tmp/php.socket",
                     "max-procs" => 2,
                     "bin-environment" => ( 
                       "PHP_FCGI_CHILDREN" => "16",
                       "PHP_FCGI_MAX_REQUESTS" => "10000" 
                     ),
                     "bin-copy-environment" => (
                       "PATH", "SHELL", "USER" 
                     ),
                     "broken-scriptfilename" => "enable" 
                 )))

Es importante establecer '''"max-procs"''' a 1 si se utiliza cualquiera cacher opcode php, a menos que sepas lo que estás haciendo. Aumentar PHP_FCGI_CHILDREN si quieres más childrens al servicio de la petición.

Por favor, lea la sección de configuración para obtener más antecedentes

Configuración por directorio PHP

. Si estás acostumbrado a usar Apache htaccess puede establecer las opciones de PHP para cada directorio, consulte HowToPhpHtaccess:

'' Cuando se utiliza una versión CGI de PHP (CGI viejo y simple o fast-cgi) apache no puede pasar
cualquier configuración de PHP htaccess. Esto puede resolverse dando  a
cada usuario su propio archivo php.ini, pero no me gustaba esa solución.
Esta extensión analiza estos archivos de configuración (en la mayoría de los casos. Htaccess) y
cambia los ajustes. Se buscarán todos los directorios de un archivo de configuración
desde el docroot hasta el directorio en el que las secuencias de comandos de solicitud se encuentra. Una caché
se lleva a cabo para minimizar el impacto en el rendimiento.''

Descargar htscanner

Mire también

 

External links

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política