LinuxParty
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.
- http://pecl.php.net/apc
- http://eaccelerator.net/ (Sucesor de Turck mmCache)
- XCache, XCache FAQ
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
- Docs:Configuration
- Docs:ModFastCGI
y utilizar
http://trac.lighttpd.net/trac/browser/tags/lighttpd-1.4.11/doc/lighttpd.conf como parte de partida de la configuracion.
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.''
Mire también
- How to setup fastcgi and php with individual permissions
- How to setup PHP and Lighty in FreeBSD
- Handy External Spawning FastCGI PHP Processes in FreeBSD
- Using a PHP to control remote linking
- X-LIGHTTPD-send-file (or X-Sendfile for lighty v1.5): See what it can do for you on large file-downloads
External links
- Howto: Lighttpd FasCGI PHP, MySQL chroot jail installation under Debian Linux
- lighttpd php-fastcgi config with its own php.ini
-
PHP
- Eliminar el mensaje «Hemos detectado que su servidor está usando PHP el cual está obsoleto» en Joomla
- FacturaScripts 2015.046 ya disponible
- FacturaScripts 2018.03 ya disponible (y presencia en OpenExpo)
- Los puntos de referencia de rendimiento de PHP 7.3 se ven buenos, días antes de su lanzamiento
- 12 Usos útil de PHP desde la línea de comandos que todo usuario de Linux debería conocer
- Como migrar de Blogger a WordPress
- Cómo instalar Composer, el gestor de paquetes de PHP globalmente
- Instalar una versión vieja (downgrade) de PHP en CentOS
- Migrar de PHPNuke a Joomla 2.5.X, paso a paso.
- Pasos para actualizar Joomla 2.5 a Joomla 3.3
- Cómo tener varias versiones de PHP en un mismo servidor
- Generar documentos Word con PHP a través de PHPDocX, biblioteca PHP para dicho fin.
- 10 formas de hacer PHP más seguro.
- Introducción a PHPUnit, la herramienta para desglosar, probar y documentar el código
- VideoTutoriales: Curso de MongoDB con PHP en Español