Instalación en sistemas Windows
PHP Manual

Instalación en sistemas Windows

Esta sección se aplica a Windows 98/Me y Windows NT/2000/XP/2003. PHP no funcionará en plataformas de 16 bits, como Windows 3.1. A veces se referirá a las plataformas de Windows admitidas como Win32.

Nota:

Ya no se da soporte a Windows XP/2003 a partir de PHP 5.5.0.

Nota:

Ya no se da soporte a Windows 98/Me/NT4 a partir de PHP 5.3.0.

Nota:

Ya no se da soporte a Windows 95 a partir de PHP 4.3.0.

Si posee un entorno de desarrollo como Microsoft Visual Studio, también puede PHP desde el código fuente original.

Una vez que haya instalado PHP en su sistema Windows, también podrá cargar varias extensiones para aumentar la funcionalidad.

Pasos para una instalación manual

Esta sección contiene instrucciones para instalar y configurar manualmente PHP en Windows de Microsoft.

Selección y descarga de el paquete de distribución PHP

Descarga la distribución binaria desde » PHP para Windows: Binarios y Fuentes . Hay varias versiones diferentes del paquete zip. Para seleccionar la versión adecuada, siga la guía detallada en la » página de descargas.

La estructura del paquete PHP y el contenido

Descomprimir el contenido del archivo zip en un directorio de su elección, por ejemplo C:\PHP\. La estructura de directorios y archivos extraídos de del zip se verá de la siguiente manera:

Ejemplo #1 PHP 5 paquete de estructura


c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib in non thread safe version
   |
   +--ext                          -- extension DLLs for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- empty
   |
   +--pear                         -- initial copy of PEAR
   |
   |
   |-go-pear.bat                   -- PEAR setup script
   |
   |-...
   |
   |-php-cgi.exe                   -- CGI executable
   |
   |-php-win.exe                   -- executes scripts without an opened command prompt
   |
   |-php.exe                       -- Command line PHP executable (CLI)
   |
   |-...
   |
   |-php.ini-development           -- default php.ini settings
   |
   |-php.ini-production            -- recommended php.ini settings
   |
   |-php5apache2_2.dll             -- does not exist in non thread safe version
   |
   |-php5apache2_2_filter.dll      -- does not exist in non thread safe version
   |
   |-...
   |
   |-php5ts.dll                    -- core PHP DLL ( php5.dll in non thread safe version)
   |
   |-...

A continuación se muestra la lista de los módulos y archivos ejecutables incluidos en la distribución del archivo zip de PHP:

  • go-pear.bat - el script de configuración de PEAR. Consulte » Instalación (PEAR) para más detalles.

  • php-cgi.exe - ejecutable CGI que se puede utilizar cuando se ejecuta PHP en IIS a través de CGI o FastCGI.

  • php-win.exe - el ejecutable para la ejecución de scripts en PHP sin necesidad de utilizar una ventana de línea de comandos de PHP (Por ejemplo, las aplicaciones PHP que utilizan Windows GUI).

  • php.exe - el ejecutable para la ejecución de scripts PHP dentro de una interfaz de línea de comandos (CLI) de PHP.

  • php5apache2_2.dll - Apache 2.2.X module.

  • php5apache2_2_filter.dll - Apache 2.2.X filter.

Cambio el fichero php.ini

Después de que el contenido del paquete de PHP se ha extraído, copie el php.ini-production en php.ini en la misma carpeta. Si es necesario, también es posible colocar el php.ini en cualquier otro lugar. Pero se requieren pasos adicionales de configuración como se describe en Configuración de PHP.

El fichero php.ini le dice a PHP cómo se configura, y cómo trabajar con el ambiente que se ejecuta. Aquí hay una serie de ajustes para el fichero php.ini PHP que ayudan a trabajar mejor con Windows. Algunos de estos son opcionales. Hay muchas otras directivas que puedan ser relevantes para su ambiente - dirijase lista de directivas php.ini para más información.

Las directivas:

  • extension_dir = <path to extension directory> - La extension_dir necesidades para indicar el directorio donde las extensiones de PHP se almacenan los ficheros. La ruta puede ser absoluta (i.e. "C:\PHP\ext") o (i.e. ".\ext"). Extensiones que se enumeran más baja en el php.ini ficheros que se encuentra en el extension_dir .

  • extension = xxxxx.dll - Para cada extensión que desee habilitar, necesita un correspondiente "extension=" directiva que le dice a PHP que las extensiones en el extension_dir para cargar en tiempo de inicio.

  • log_errors = On - PHP tiene un error de registro de instalación que se puede utilizar para enviar los errores a un fichero, o de un servicio (i.e. syslog) y trabaja en conjunto con el error_log Directiva a continuación. Cuando se ejecuta bajo IIS, la log_errors debe estar habilitado, con una validez error_log .

  • error_log = <path to the error log file> - El error_log tiene que especificar la ruta de acceso absoluta, o en relación con el archivo donde los errores de PHP debe estar registrado. Este archivo debe tener permisos de escritura para el servidor web. Los lugares más comunes para este archivo en varios directorios TEMP, por ejemplo "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - La presente Directiva se requiere para ejecutar en IIS. Se trata de una protección de la instalación de la guía necesaria por muchos otros servidores web. Sin embargo, lo que permite que en IIS hacer que el motor de PHP a un error en Windows.

  • cgi.fix_pathinfo = 1 - Esto le permite acceder a PHP al real path después de la especificación CGI. IIS FastCGI implementa las necesidades de este conjunto.

  • fastcgi.impersonate = 1 - FastCGI bajo IIS admite la posibilidad de hacerse pasar por tokens de seguridad del cliente que llama. Esto permite que IIS defina el contexto de seguridad que solicita ejecutar.

  • fastcgi.logging = 0 - FastCGI debe estar deshabilitado en IIS. Si se deja habilitada, los mensajes de cualquier clase son tratados por FastCGI como las condiciones de error que hará que IIS genere una excepción HTTP 500.

Directivas opcionales

  • max_execution_time = ## - Esta directiva le dice a PHP, el importe máximo de tiempo que puede ejecutar cualquier script determinado. El defecto es 30 segundos. Aumentar el valor de esta directiva, si la aplicación PHP tomar mucho tiempo para ejecutarse.

  • memory_limit = ###M - La cantidad de memoria disponible para el proceso de PHP, en Megabytes. El valor por defecto es 128, lo cual está bien para la mayoría de las aplicaciones PHP. Algunos de los más complejos puede ser que necesite más.

  • display_errors = Off - Esta directiva le dice a PHP si se incluyen los mensajes de error en el corriente que devuelve al servidor web. Si se establece en "On", entonces PHP enviará lo que las clases de errores que se define con la error_reporting directiva de nuevo al servidor web como parte de la secuencia de error. Por razones de seguridad, se recomienda "Off" en los servidores de producción con el fin de no revelar ninguna información sensible de la seguridad que a menudo se incluyen en los mensajes de error.

  • open_basedir = <paths a directorios, separados por semicolon>, por ejemplo, openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Esta directiva especifica las rutas de directorio en donde PHP se le permite realizar las operaciones del sistema de archivos. Cualquier operación de fichero fuera de las rutas especificadas se producirá un error. Esta directiva es especialmente útil para bloquear la instalación de PHP en entornos de alojamiento compartido para evitar que scripts PHP de acceso a los archivos fuera del directorio raíz del sitio web.

  • upload_max_filesize = ###M and post_max_size = ###M - El tamaño máximo permitido de un archivo subido y los datos posteriores, respectivamente. Los valores de estas directivas serán aumenta si las aplicaciones PHP necesita realizar grandes cargas, como por ejemplo fotos o archivos de vídeo.

PHP esta ahora configurado en el sistema. El siguiente paso es elegir un servidor web, a fin de que pueda ejecutar PHP. Elegir un servidor web de la tabla de contenido.

Además de ejecutar PHP a través de un servidor web, PHP puede ejecutar desde la línea de comandos como un script .BAT. Ver

Microsoft IIS

Esta sección contiene instrucciones específicas de la instalación de PHP en Microsoft Internet Information Services (IIS).

Microsoft IIS 5.1 y IIS 6.0

Esta sección contiene instrucciones para configurar en forma manual Internet Information Services (IIS) 5.1 y IIS 6.0 para trabajar con PHP en Microsoft Windows XP y Windows Server 2003. Para obtener instrucciones sobre la configuración de IIS 7.0 y versiones posteriores de Windows Vista , Windows Server 2008, Windows 7 y Windows Server 2008 R2 referirse a Microsoft IIS 7.0 y posteriores.

Configurar IIS para procesar solicitudes de PHP

Descarga e instala PHP de acuerdo a las instrucciones descritas en manual detallado de instalación

Nota:

Non-thread-safe build de PHP se recomienda cuando se utiliza IIS. Non-thread-safe builds están disponibles en »  PHP para Windows: Binarios y Fuentes.

Configure el CGI- y configure FastCGI-specific en el archivo php.ini como se muestra a continuación:

Ejemplo #2 Configuración CGI y FastCGI en php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Descargue e instale » Microsoft FastCGI extensión para IIS 5.1 y 6.0. La extensión está disponible para 32-bit y plataformas de 64-bit - seleccionar el paquete de descarga adecuada para la plataforma.

Configure la extensión FastCGI para manejar las solicitudes específicas de PHP ejecutando el comando que se muestra a continuación. Vuelva a colocar el valor de el parámetro "-path" con la ruta absoluta del fichero en el fichero php-cgi.exe.

Ejemplo #3 Configuración de la extensión FastCGI para manejar las solicitudes de PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"

Este comando creará un script de mapeo IIS para el fichero de extensión *.php , lo que resultará en todas las URLs que terminan con .php siendo manejado por la extensión FastCGI. Asimismo, se configurará la extensión FastCGI a usar en el ejecutable php-cgi.exe para procesar las solicitudes de PHP.

Nota:

En este punto la necesidad de instalación y configuración de los pasos se han completado. El resto de instrucciones a continuación son opcionales, pero altamente recomendable para lograr una funcionalidad óptima y el rendimiento de PHP en IIS.

Suplantación y acceso a ficheros del sistema

Se recomienda habilitar la suplantación FastCGI en PHP cuando este utilizando IIS. Esto es controlado por la directiva fastcgi.impersonate en el fichero php.ini. Cuando suplantación está activado, PHP realizará todas las operaciones de ficheros de sistema en favor de la cuenta de usuario que se ha determinado por la autentificación de IIS. Esta asegura que, incluso si el mismo proceso PHP se comparte entre diferentes sitios web IIS, los scripts PHP en estos sitios web no podrá acceder a los otros fichero ' siempre y cuando use cuentas de usuario diferentes utilizado para la autenticación IIS en cada sitio web.

Por ejemplo IIS 5.1 and IIS 6.0, en su configuración predeterminada, se ha habilitado la autenticación anónima con una función de cuenta de usuario IUSR_<MACHINE_NAME> utilizado como una identidad por defecto. Esto significa que para que IIS puede ejecutar scripts PHP, es necesario concedera la cuenta IIUSR_<MACHINE_NAME> permiso de lectura en estos scripts. Si las aplicaciones PHP necesitan realizar operaciones de escritura sobre determinados ficheros o escribir ficheros en algunas carpetas a continuación la cuenta IUSR_<MACHINE_NAME> debe tener permiso para escribir en ellos.

Para determinar qué cuenta de usuario es utilizado por IIS autenticación anónima, siga estos pasos:

  1. En el menú Inicio de Windows seleccione "Run:", type "inetmgr" y haga clic en "Ok";

  2. Expanda la lista de sitios web en el nodo "Web Sites" en la vista de árbol, haga clic derecho en el sitio web que se está utilizando y seleccionar "Properties";

  3. Haga clic en "Directory Security" tab;

  4. Tome nota de un "User name:" campo en el cuadro de dialogo "Authentication Methods"

Autenticación anonima para IIS 5.1 y IIS 6.0

Para modificar la configuración de permisos en ficheros y carpetas, utilice la interfaz de usuario de el Explorador de Windows o el comando icacls.

Ejemplo #4 Configuración del fichero de los permisos de acceso

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Establecerindex.php como un documento predeterminado en IIS

Los documentos por defecto de IIS se utilizan para las solicitudes HTTP que no especifican un nombre de documento. Con las aplicaciones PHP, index.php suele actuar como un documento predeterminado. Para añadir index.php a la lista de documentos predeterminados IIS, siga estos pasos:

  1. En el menú Inicio de Windows seleccione "Run:", teclee "inetmgr" y haga clic en "Ok";

  2. Haga clic derecho en el nodo ""Web Sites" de la vista de árbol y seleccione "Properties";

  3. Haga clic en "Documents" tab;

  4. Haga clic en el botón "Add..." y enter en "index.php" para el " Contenido de la página por defecto :".

Configuración index.php como documento predeterminado para IIS

FastCGI y Reciclaje de configuración de PHP

Configurar la extensión IIS FastCGI para el reciclaje de procesos PHP utilizando los comandos de abajo. Los controles de configuración de FastCGI instanceMaxRequests número de solicitudes que serán procesadas por un solo proceso php-cgi.exe antes de el cierre de la extensión FastCGI. La variable PHP de entorno PHP_FCGI_MAX_REQUESTS controla cuántas peticiones de un único proceso php-cgi.exe se encargará antes de que se recicle así mismo. Asegúrese de que el valor especificado por la configuración FastCGI InstanceMaxRequests es menor o igual al valor especificado para PHP_FCGI_MAX_REQUESTS.

Ejemplo #5 Configuración FastCGI y reciclaje PHP

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

Configuración de los ajustes de tiempo de espera FastCGI

Aumentar la configuración de tiempo de espera para la extensión FastCGI si hay aplicaciones que llevan mucho tiempo ejecutar scripts PHP. Los dos valores a ajsutar de los controles de tiempos de espera son ActivityTimeout y RequestTimeout. Véase » Configuración de Extensión FastCGI para IIS 6.0 para más información sobre los ajustes.

Ejemplo #6 Configuración de los ajustes de tiempo de espera FastCGI

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90

Cambiar la ubicación del fichero php.ini

PHP busca para el fichero php.ini en varios lugares y es posible cambiar las ubicaciones predeterminadas de el fichero php.ini utilizando la variable de entorno PHPRC. Las instrucciones PHP para cargar el fichero de configuración desde una ubicación personalizada, ejecute el comando que se muestra a continuación. La ruta de acceso absoluta al directorio con el fichero php.ini debe ser especifica con un valor de variable de entorno PHPRC.

Ejemplo #7 Cambiar la ubicación del fichero php.ini

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"

Microsoft IIS 7.0 y posteriores

Esta sección contiene instrucciones para configurar en forma manual Internet Information Services (IIS) 7.0 y posteriores para trabajar con PHP en Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 and Windows Server 2008 R2. Para obtener instrucciones sobre la configuración de IIS 5.1 and IIS 6.0 on Windows XP and Windows Server 2003 refiérase a Microsoft IIS 5.1 and IIS 6.0.

Habilitación de apoyo FastCGI en IIS

Módulo FastCGI está deshabilitado en la instalación por defecto de IIS. Los pasos para que pueda variar según la versión de Windows se está utilizando.

Para activar el soporte FastCGI en Windows Vista SP1 y Windows 7:

  1. En el menu de inicio de Windows seleccione "Run:", teclee "optionalfeatures.exe" y click "Ok";

  2. En el "Windows Features" cuadro de diálogo "Internet Information Services", "World Wide Web Services", " Caracteristicas Desarrollo de aplicaciones " y luego permitir que el "CGI" checkbox;

  3. Haga clic en Aceptar y espere hasta que se complete la instalación

Habilitar soporte para FastCGI IIS7 en Windows Vista SP1 y Windows 7

Para activar el soporte FastCGI en Windows Server 2008 y Windows Server 2008 R2:

  1. En el menú Inicio de Windows elegir "Run:", teclee "CompMgmtLauncher" y click "Ok";

  2. En el "Web Server (IIS)" El rol no está presente en el marco del "Roles" nodo, a continuación, añadir haciendo clic en "Adicionar Roles";

  3. Si la "Web Server (IIS)" role esta presente, entonces haga click "Add Role Services" y luego permitir que el "CGI" casilla de verificación en grupo "Desarrollo de Aplicaciones" ;

  4. Click "Next" y luego "Install" ay espere a que la instalación se complete.

Habilitación FastCGI apoyo en Windows Server 2008 y Windows Server 2008 R2

Configurar IIS para procesar las solicitudes de PHP

Descargue e instale PHP de acuerdo a las instrucciones descritas en manual installation steps

Nota:

No construir thread-safe de PHP se recomienda cuando IIS utilizando. El no-thread-safe crea están disponibles en » PHP para Windows: binarios y fuentes.

Configure el CGI y la configuración específica de FastCGI php.ini fichero como se muestra a continuación:

Ejemplo #8 CGI y FastCGI en la configuración php.ini

fastcgi.impersonate = 1
    fastcgi.logging = 0
    cgi.fix_pathinfo=1
    cgi.force_redirect = 0

Configurar la asignación de IIS controlador para PHP utilizando la interfaz de usuario Administrador de IIS o una herramienta de línea de comandos.

El uso de IIS interfaz de usuario de Manager para crear una asignación de controlador para PHP

Siga estos pasos para crear una asignación de controlador de IIS para PHP en la interfaz de usuario Administrador de IIS:

  1. En el menú Inicio de Windows elegir "Run:", escriba "inetmgr" y click "Ok";

  2. En la interfaz de usuario de IIS Manager, seleccione el nodo de servidor en el "Connections" vista de árbol;

  3. En el "Características" Página de abrir el "Handler Mappings" feature;

    Crear la asignación de IIS controlador para PHP: Localizar Handler Mappings

  4. En el "Actions" haga click en panel "Add Module Mapping...";

  5. En el "Add Module Mapping" diálogo entre lo siguiente:

    • Solicitud de ruta: *.php
    • Modulo: FastCgiModule
    • Ejecutable: C:\[Path to PHP installation]\php-cgi.exe
    • Nombre: PHP_via_FastCGI

  6. Haga Click en "Solicitar Restricciones" botón y luego configurar la asignación de invocar controlador sólo si la solicitud se asigna a un archivo o una carpeta;

  7. Haga clic en Aceptar en todos los cuadros de diálogo para guardar la configuración.

Crear mapas controlador de IIS para PHP: Agregar controlador de Cartografía

Utilizando la herramienta de línea de comandos para crear una asignación de controlador para PHP

Utilice el comando mostrado a continuación para crear un grupo de IIS FastCGI proceso que utilizará php-cgi.exe ejecutable para la tramitación de solicitudes de PHP. Vuelva a colocar el valor del parámetro fullPath con la ruta absoluta al fichero php-cgi.exe.

Ejemplo #9 >Creación del proceso del grupo IIS FastCGI

     %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
     /+[fullPath='c:\PHP\php-cgi.exe']
     

Configurar IIS PHP para manejar las peticiones concretas de la ejecución del comando que se muestra a continuación. Vuelva a colocar el valor del parámetro scriptProcessor con la ruta de acceso absoluta al fichero php-cgi.exe.

Ejemplo #10 Creación de mapas manejador de peticiones PHP

     %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
     /+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
     scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
     

Este comando crea una asignación de controlador de IIS para la extensión de archivo *.php, lo que resultará en todas las direcciones URL que terminan con. Php siendo manejado por el módulo FastCGI.

Nota:

En este punto la necesidad de instalación y configuración de los pasos se han completado. Las instrucciones a continuación son opcionales, pero altamente recomendable para lograr una funcionalidad óptima y el rendimiento de PHP en IIS.

Suplantación de identidad y acceso a archivos del sistema

Se recomienda habilitar la suplantación en PHP FastCGI cuando IIS utilizando. Esta está controlado por la directiva fastcgi.impersonate en el fichero php.ini. Cuando está habilitada la suplantación, PHP realizará todas las operaciones del sistema de ficheros en nombre de la cuenta de usuario que ha sido determinado por la autentificación de IIS. Esto asegura que, aunque el proceso mismo PHP es compartido a través de diferentes sitios web IIS, los scripts PHP en los sitios web no será capaz de acceder a los demás ficheros, siempre y cuando las cuentas de usuario se utilizan para la autenticación de IIS en cada sitio web.

Por ejemplo IIS 7, en su configuración por defecto, se ha habilitado la autenticación anónima con incorporada IUSR cuenta de usuario utilizada como una identidad por defecto. Esto significa que para que IIS ejecutar scripts PHP, es necesario conceder a la cuenta IUSR permiso de lectura en estos scripts. Si las aplicaciones PHP necesidad de realizar operaciones de escritura de ciertos ficheros o escribir ficheros en una carpetas entonces cuenta IUSR debe tener permiso para escribir en ellos.

Para determinar qué cuenta de usuario se utiliza como una identidad anónima en IIS 7 utilice el siguiente comando. Vuelva a colocar el "Sitio Web predeterminado" con el nombre del sitio Web de IIS que utiliza. En la producción configuración XML aspecto de elemento para el atributo userName.

Ejemplo #11 La determinación de la cuenta utilizada como IIS identidad anónima

    %windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
    /section:anonymousAuthentication
    <system.webServer>
    <security>
    <authentication>
    <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
    </security>
    </system.webServer>
    

Nota:

Si el atributo userName no está presente en el elemento anonymousAuthentication, o si se establece una cadena vacía, entonces significa que la identidad del grupo de aplicaciones se utiliza como un identidad anónima para ese sitio web.

Para modificar la configuración de permisos de archivos y carpetas, utilice la interfaz de usuario del Explorador de Windows o comando icacls.

Ejemplo #12 Configuración de archivo de los permisos de acceso

    icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
    

Establecer index.php como un documento predeterminado en IIS

Los documentos por defecto de IIS se utilizan para las solicitudes HTTP que no se especifica un nombre de documento. Con las aplicaciones PHP,index.php por lo general actúa como un documento predeterminado. Para añadir index.php a la lista de los documentos por defecto de IIS, utilice este comando:

Ejemplo #13 Establecer index.php como un documento predeterminado en IIS

    %windir%\system32\inetsrv\appcmd.exe set config ^
    -section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
    /commit:apphost
    

FastCGI y configuración de PHP Reciclaje

Configurar la configuración de IIS FastCGI PHP para el reciclaje de los procesos mediante los comandos de abajo. La configuración FastCGI instanceMaxRequests controla cuántas peticiones se procesado por un solo peoceso php-cgi.exe antes de IIS se cierra. La variable de entorno PHP PHP_FCGI_MAX_REQUESTS controla el número pide una sola proceso php-cgi.exe se encargará antes de que se recicla sí misma. Asegúrese de que el valor especificado para la configuración FastCGI InstanceMaxRequests es menor o igual al valor especificado para PHP_FCGI_MAX_REQUESTS.

Ejemplo #14 Configuración de PHP FastCGI y el reciclaje

    %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
    /[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000
    %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
    /+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^
    [name='PHP_FCGI_MAX_REQUESTS',value='10000']"
    

FastCGI ajustes de tiempo de espera

Aumentar el tiempo de espera para la configuración de FastCGI si se espera tener a largo ejecutar scripts PHP. Los dos valores que los tiempos de espera de control activityTimeout y requestTimeout. Utilice los comandos siguientes para cambiar la configuración de tiempo de espera. Asegúrese de sustituir el valor en el parámetro a fullPath contendrá la ruta absoluta a el fichero php-cgi.exe.

Ejemplo #15 Configuración de los ajustes de tiempo de espera FastCGI

    %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
    /[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost
    %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
    /[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost
    

Cambiar la ubicación del fichero php.ini

PHP busca el fichero php.ini en varios lugares y es posible cambiar las ubicaciones predeterminadas del fichero php.ini utilizando variable de entorno PHPRC. Encomendar a PHP para cargar el archivo de configuración desde una ubicación personalizada, ejecute el comando se muestra a continuación. La ruta de acceso absoluta al directorio con el fichero php.ini debe ser especifica como un valor de variable de entorno PHPRC.

Ejemplo #16 Cambiar la ubicación del fichero php.ini

    appcmd.exe set config  -section:system.webServer/fastCgi ^
    /+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
    [name='PHPRC',value='C:\Some\Directory\']" /commit:apphost
    

Apache 1.3.x en Microsoft Windows

Esta sección contiene notas y sugerencias específicas para Apache 1.3.x instaladas con PHP en sistemas Microsoft Windows. También hay

Nota:

Por favor lea primero el manual de instalación

Hay dos formas de configurar PHP para trabajar con Apache 1.3.x en Windows. La primera es usar CGI binary (php.exe para PHP 4 y php-cgi.exe para PHP 5), la otra es utilizar el módulo DLL de Apache. En ambos casos se necesita editar httpd.conf para configurar Apache para trabajar con PHP, y después reiniciar el servidor.

Vale la pena resaltar, que el módulo SAPI ha sido desarrollado mas estable bajo Windows. Se recomienda su uso más que el binario CGI, ya que es más trasparente y seguro.

Aunque pueden haber algunas variaciones en la configuración de PHP bajo Apache, estas son sencillas para ser utilizados por el principiante. Por favor consulte la documentación de Apache para seguir directivas de configuración.

Después de modificar el archivo de configuración, recuerde que debe reiniciar el servidor, por ejemplo NET STOP APACHE seguido de NET START APACHE, si ejecuta Apache como un servicio de Windows, o si usa los atajos

Nota: Recuerde que cuando agrega rutas como valores en los archivos de configuración de Apache en Windows, todas las barras invertidas tal como c:\directory\file.ext deberían ser convertidas en barras comunes: c:/directory/file.ext. Una barra común al final será necesaria para directorios.

Instalación como módulo de Apache

Se deben agregar las siguientes líneas a su archivo de configuración Apache httpd.conf

Ejemplo #17 PHP como módulo de Apache 1.3.x

Se asume que PHP está instalado en c:\php. Ajuste la ruta de acceso si este no es el caso.

Para PHP 4:

# Adicionar al final de la sección LoadModule 
# No olvidar copiar este ficrero desde el directorio sapi! 
LoadModule php4_module "C:/php/php4apache.dll" 
 
# Adicionar al final de la sección AddModule 
AddModule mod_php4.c

Para PHP 5:

# Adicionar al final de la sección LoadModule 
LoadModule php5_module "C:/php/php5apache.dll" 
 
# Adicionar al final de la sección AddModule 
AddModule mod_php5.c

Para ambos :

# Adicionar esta línea dentro de la <IfModule Mod_mime.c> condicional brace 
AddType application/x-httpd-php .php 
 
# Para la sintaxis highlighted .phps files, tambien adicionar 
AddType application/x-httpd-php-source .phps

Instalación como un binario CGI

Si se ha descomprimido el paquete PHP C:\php\ como se describe en la sección Manual de instalación paso a paso, es necesario insertar estas líneas a su archivo de configuración de Apache para configurar el binario CGI:

Ejemplo #18 PHP y Apache 1.3.x como CGI

ScriptAlias /php/ "c:/php/" 
AddType application/x-httpd-php .php 
 
# Para PHP 4 
Action application/x-httpd-php "/php/php.exe" 
 
# Para PHP 5 
Action application/x-httpd-php "/php/php-cgi.exe" 
 
# Especifica el directorio donde php.ini esta 
SetEnv PHPRC C:/php
Tenga en cuenta que la segunda línea en la lista anterior se puede encontrar en las versiones actuales de httpd.conf, pero se comenta. Recordar también sustituir el c:\php\ para su ruta de acceso real a PHP.

Advertencia

Al usar el modo CGI, su servidor esta expuesto a diferentes ataques. Por favor, leer la sección Seguridad con CGI para aprender cómo defenderse de estos ataques.

Si desea presentar archivos de código fuente PHP sintaxis highlighted, no existe la opción más conveniente con la versión de PHP como módulo. Si ha elegido configurar Apache para usar PHP como un binario CGI, tendrá que usar la función highlight_file(). Para ello se necesita crear un script PHP y agregarle el código <?php highlight_file('some_php_script.php'); ?>.

Apache 2.x en Microsoft Windows

Esta sección contiene notas y sugerencias específicas de Apache 2.x instaladas con PHP en sistemas Microsoft Windows. También hay

Nota:

Por favor lea primero el manual de instalación

Nota: Soporte para Apache 2.2

Los usuarios de Apache 2.2 deben tener en cuenta que el archivo DLL para Apache 2.2 es llamado php5apache2_2.dll a cambio de php5apache2.dll y sólo está disponible para PHP 5.2.0 y posteriores.

Se le recomienda consultar la » Documentación de Apache Para obtener un conocimiento básico del servidor Apache 2.x. Tambien considere leer las » notas especificas de Windows para Apache 2.x antes de seguir leyendo aquí.

Apache 2.x está diseñado para ejecutarse en las versiones de Windows designado como servidor de plataforma, tales como Windows NT 4.0, Windows 2000, Windows XP o Windows 7. Aunque Apache 2.x funciona bastante bien en Windows 9x, el soporte en estas plataformas es incompleta, y algunas cosas no funcionan correctamente. No existe un plan para remediar esta situación.

Descargue la versión más reciente de »  Apache 2.x y un accesorio de la versión de PHP. Siga los pasos del Manual de Instalación y regrese a continuar con la integración de PHP y Apache.

Hay tres formas de configurar PHP para trabajar con Apache 2.x en Windows. Puede ejecutar PHP como un controlador, como CGI o bajo FastCGI.

Nota: Recuerde que cuando agrega rutas como valores en los archivos de configuración de Apache en Windows, todas las barras invertidas tal como c:\directory\file.ext deberían ser convertidas en barras comunes: c:/directory/file.ext. Una barra común al final será necesaria para directorios.

Instalación como un controlador de Apache

Es necesario insertar las siguientes líneas en Apache httpd.conf archivo de configuración para cargar el módulo PHP para Apache 2.x:

Ejemplo #19 PHP and Apache 2.x como controlador

# 
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# Configurar la ruta de php.ini
PHPIniDir "C:/php"

Nota: Recuerda sustituir la ruta de acceso actual a PHP para el C:/php/ en los ejemplos anteriores. Tenga cuidado en utilizar ya sea php5apache2.dll o php5apache2_2.dll en la directiva LoadModule y verificar que el fichero de referencia se encuentra localizado en la ruta de fichero que se señala en la presente directiva.

La configuración anterior permite habilitar PHP como controlador de cualquier fichero que tiene una extensión .php, aunque existen otras extensiones de fichero. Por ejemplo, un fichero llamadoexample.php.txt será ejecutado por el controlador de PHP. Para garantizar que sólo los ficheros queterminen en .php son ejecutados, se utiliza la siguiente configuración en su lugar:

<FilesMatch \.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Ejecutar PHP como CGI

Se debe consultar la» Documentación de Apache CGI para una comprensión más completa de ejecutar CGI en Apache

Para ejecutar PHP como CGI, tendrás que colocar los ficheros php-cgi en un directorio designado como directorio CGI usando la directiva ScriptAlias.

A continuación, se nesesita insertar una #! línea en los ficheros PHP, apuntando a la ubicación del binario de PHP:

Ejemplo #20 PHP y Apache 2.x como CGI

#!C:/php/php.exe
<?php
  phpinfo();
?>

Advertencia

Al usar el modo CGI, su servidor esta expuesto a diferentes ataques. Por favor, leer la sección Seguridad con CGI para aprender cómo defenderse de estos ataques.

Ejecutar PHP bajo FastCGI

Ejecutar PHP bajo FastCGI tiene una serie de ventajas con respecto a ejecutarlo como un CGI. Si lo establece de esta manera es bastante sencillo:

Obtener mod_fcgid de » http://httpd.apache.org/mod_fcgid/. Los binarios de Win32 están disponibles para la descargar en ese sitio. Instalar el módulo de acuerdo con las instrucciones que vienen con él.

Configurar el servidor web como se muestra abajo, teniendo cuidado de ajustar cualquier ruta que refleje como se tiene instalado las cosas en el sistema:

Ejemplo #21 Configurar Apache para ejecutar PHP como FastCGI

LoadModule fcgid_module modules/mod_fcgid.so  

# Donde está el fichero php.ini?
FcgidInitialEnv PHPRC        "c:/php" 

AddHandler fcgid-script .php  
FcgidWrapper "c:/php/php-cgi.exe" .php  
Los ficheros con extensión .php ahora serán ejecutados por PHP FastCGI

Servidores Sun, iPlanet y Netscape en Microsoft Windows

Esta sección contiene anotaciones y consejos específicos de servidores Sun Java System Web Server, Sun ONE Web Server, iPlanet y Netscape en sistemas Windows.

Desde PHP 4.3.3 pueden usarse scripts PHP con el módulo NSAPI para la compatibilidad con Apache. Para tener soporte con los servidores web actuales

Instalación CGI en servidores Sun, iPlanet y Netscape

Para instalar PHP como un manejador CGI, haga lo siguiente:

  • Copie php4ts.dll al raíz del sistema (directorio en el que instaló Windows)
  • Realice la asociación de ficheros en la línea de comandos. Introduzca las siguientes líneas:

    assoc .php=PHPScript
    ftype PHPScript=c:\php\php.exe %1 %*

  • En Netscape Enterprise Administration Server cree un directorio shellcgi temporal y bórrelo después (este paso añadirá 5 líneas importantes a obj.conf y permitirá que el servidor web maneje scripts shellcgi).
  • En Netscape Enterprise Administration Server cree un nuevo tipo mime (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).
  • Realícelo para cada instancia de servidor web en que desee ejecutar PHP

Se pueden encontrar más detalles sobre cómo configurar PHP como ejecutable CGI en » http://benoit.noss.free.fr/php/install-php.html

Configuración de NSAPI en servidores Sun, iPlanet y Netscape

Para instalar PHP con NSAPI, haga lo siguiente:

  • Copie php4ts.dll al raíz de su sistema (directorio en que instaló Windows)
  • Haga la asociación de ficheros en la línea de comandos. Introduzca las siguientes líneas:

    assoc .php=PHPScript
    ftype PHPScript=c:\php\php.exe %1 %*

  • En Netscape Enterprise Administration Server cree un nuevo tipo mime (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).
  • Edite magnus.conf (para servidores >= 6) o obj.conf (para servidores < 6) e introduzca lo siguiente: Debe ubicar estas líneas tras mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
    Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    
    (PHP >= 4.3.3) El parámetro php_ini es opcional, pero usándolo se puede reubicar el fichero php.ini al directorio de configuración del servidor web.

  • Configure el objeto por omisión en obj.conf (para clases de servidores virtuales [Sun Web Server 6.0+] en su fichero vserver.obj.conf): En la sección <Object name="default">, añada esta línea tras los 'ObjectType' y antes de las líneas 'AddLog':

    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    
    (PHP >= 4.3.3) Se pueden añadir parámetros adicionales del tipo php.ini-values, por ejemplo, se puede especificar el docroot="/path/to/docroot" específico para el contexto en que se invoca a php4_execute. En las claves ini booleanas, debe usarse 0 o 1 como valor, y nunca "On","Off",... (no funcionará correctamente), p.ej. zlib.output_compression=1 en lugar de zlib.output_compression="On"

  • Esto sólo es necesario si se desea configurar un directorio que consista únicamente en scripts PHP (como en los directorios cgi-bin):

    <Object name="x-httpd-php">
    ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
    Service fn=php4_execute [inikey=value inikey=value ...]
    </Object>
    
    Tras eso, se puede configurar un directorio en la administración del servidor para asignarle el estilo x-httpd-php. Todos los ficheros que contenga se ejecutarán con PHP. Es útil para ocultar el uso de PHP, renombrando los ficheros a .html.

  • Reinicie el servidor web y aplique los cambios
  • Realícelo para cada instancia del servidor web en que desee ejecutar PHP

Nota:

Puede consultar más detalles sobre cómo configurar PHP como filtro NSAPI aquí: » http://benoit.noss.free.fr/php/install-php4.html

Nota:

El tamaño de pila de PHP depende de la configuración del servidor web. Si la ejecución de scripts extensos de PHP se detiene, se recomienda que lo propague con Admin Server (en la sección "MAGNUS EDITOR").

entornos CGI y modificaciones recomendadas en php.ini

Al escribir scripts PHP es importante tener en cuenta que Sun JSWS/Sun ONE WS/iPlanet/Netscape es un servidor web multihebra, ya que todas las peticiones se ejecutan en el espacio del mismo proceso (el espacio del propio servidor web) y este espacio sólo contiene un entorno de ejecución. Si se desea conocer variables CGI como PATH_INFO, HTTP_HOST, etc. no se debe hacer de la forma convencional con getenv() o similares (register globals del entorno, $_ENV). Sólo se obtendrá el entorno del servidor web en ejecución sin ninguna variable CGI válida.

Nota:

¿Pero por qué hay variables CGI (inválidas) en el entorno?

Respuesta: Se debe a que se inició el proceso del servidor web desde el servidor de administración que lanza el script de inicio del servidor web como un script CGI (¡un script CGI dentro del servidor de administración!). Ésta es la razón por la que el entorno del servidor web contiene algunas variables de entorno CGI. Puede comprobarlo iniciando el servidor web de otra forma. Acceda al terminal como administrador y arránquelo a mano - verá que ya no hay variables de entorno CGI.

Deben actualizarse los scripts, para que consulten variables CGI de la forma correcta para PHP 4.X, usando la superglobal $_SERVER. Si se tuvieran scripts antiguos que usaran $HTTP_HOST, etc., debería habilitarse register_globals en php.ini, así como cambiar la variable de orden (importante: elimine la "E", ya que aquí no se necesitan variables de entorno):

variables_order = "GPCS"
register_globals = On

Uso especial de páginas de error y listados de directorios personalizados (PHP >= 4.3.3)

Se puede utilizar PHP para generar páginas de error para "404 Not Found" o similar. Debe añadirse la siguiente línea al objeto en obj.conf para cada página de error que se desee redefinir:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
donde XXX es el código de error HTTP. Debe eliminarse todas las directivas Error que puedan colisionar con las nuevas. Si se desea crear una página genérica para todos los errores, debe omitirse el parámetro code. El script podrá consultar el código de estado HTTP en $_SERVER['ERROR_TYPE'].

Otra posibilidad es generar listados de directorios personalizados. Debe crearse un script PHP que liste el contenido de un directorio y reemplace la línea del servicio correspondiente para type="magnus-internal/directory" en obj.conf por lo siguiente:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
Tanto para la página de error como de listado de directorios, la URI original y la traducida están disponibles en las variables $_SERVER['PATH_INFO'] y $_SERVER['PATH_TRANSLATED'].

Anotaciones sobre nsapi_virtual() y subpeticioness (PHP >= 4.3.3)

El módulo NSAPI ahora soporta la función nsapi_virtual() (alias: virtual()) para hacer subpeticiones al sevidor web e insertar el resultado en la página web. El problema es que esta función utiliza algunas funcionalidades no documentadas de la biblioteca NSAPI.

En Unix esto no es un problema, porque el módulo automáticamente busca las funciones necesarias y las usa si estuvieran disponibles. Si no, nsapi_virtual() queda deshabilitado.

En Windows, las limitaciones del manejo de DLL necesitan emplear detección automática del fichero ns-httpdXX.dll más reciente. Se ha probado hasta en servidores versión 6.1. Si se utiliza una versión más reciente del servidor Sun, la detección falla y nsapi_virtual() se deshabilita.

Si este fuera el caso, debe probarse lo siguiente: Añada el siguiente parámetro a php4_init en magnus.conf/obj.conf:

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
donde XX es el número de versión correcto de la DLL. Para conocerlo, busca en el raíz del servidor el nombre correcto de la DLL. La DLL de mayor tamaño es la adecuada.

Puede comprobar el estado usando la función phpinfo().

Nota:

Pero tenga en cuenta: El soporte para nsapi_virtual() es EXPERIMENTAL.

Sambar Server en Microsoft Windows

Esta sección contiene notas y consejos específicos a el » Servidor Sambar para Windows.

Nota:

Debe leer primero los pasos del manual de instalación.

Esta lista describe cómo configurar el módulo ISAPI para trabajar con el servidor Sambar en Windows.

Nota:

Si va a usar PHP para comunicarse con los recursos que se celebran en un equipo diferente en la red, entonces usted tendrá que modificar la cuenta utilizada por los servicios de el servidor Sambar. La cuenta por defecto utilizado por el Servicio del servidor Sambar es LocalSystem que no tendrán acceso a recursos remotos. La cuenta puede ser modificada mediante el uso de la opción de servicios de Windows en el Panel de control de las herramientas de administración.

Xitami en Microsoft Windows

Esta sección contiene notas y sugerencias específicas para » Xitami en Windows.

Nota:

Debe leer primero los pasos del Manual de instalación.

Esta lista describe cómo configurar el PHP CGI binary para trabajar con Xitami en Windows.

Nota: Importante para los usuarios de CGI

Leer las preguntas frecuentes en cgi.force_redirect para más detalles importantes. Esta directiva se debe establecer a0. Si desea utilizar $_SERVER['PHP_SELF'] tienes que habilitar la directiva cgi.fix_pathinfo.

Advertencia

Al usar el modo CGI, su servidor esta expuesto a diferentes ataques. Por favor, leer la sección Seguridad con CGI para aprender cómo defenderse de estos ataques.

Construcción de la fuente

En este capítulo se enseña a compilar PHP a partir de fuentes en Windows, usando Microsoft's tools. Para compilar PHP con cygwin, por favor vaya a Instalación sobre sistemas Unix.

Consulte la documentación del Wiki en: » http://wiki.php.net/internals/windows/stepbystepbuild

Instalación de extensiones en Windows

Después de instalar PHP y un servidor web en Windows, es probable que desee instalar algunas extensiones para mayor funcionalidad. Puede elegir cuales extensiones desea cargar cuando PHP inicia modificando php.ini. También puede cargar un módulo dinámicamente en el script con dll().

Las DLL para las extensiones de PHP tienen el prefijo php_.

Algunas extensiones son construidas dentro de la versión de Windows de PHP. Esto significa que los ficheros DLL adicionales, y la extensión directiva, no se utiliza para cargar estas extensiones. En la tabla de Windows las extensiones PHP son enumeradas las extensiones que se requieren, se utilizan, ficheros PHP DLL adicionales. Aquí hay una lista de extensiones integradas (actualizada PHP 5.0.4): BCMath, Caledar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML y Zlib.

La ubicación predeterminada de las búsquedas PHP para las extensiones es C:\php5. Para cambiar estos parámetros reflejando la configuración de PHP, edite el fichero php.ini:

Nota: Si está ejecutando un servidor de la versión de PHP como módulo recuerde reiniciar su servidor web para reflejar los cambios a php.ini.

En la tabla siguiente se describen algunas de las extensiones disponibles y las dlls adicionales.

Extensiones de PHP
Extensión Descripción Notas
php_bz2.dll Funciones de compresión bzip2 Ninguna
php_calendar.dll Funciones de conversión Calendario Ninguna
php_crack.dll Funciones Crack Ninguna
php_ctype.dll Funciones familiares ctype Ninguna
php_curl.dll Funciones de la libreria cliente URL CURL Requiere: libeay32.dll, ssleay32.dll(incluido)
php_dba.dll DBA: Funciones de Capa de abstracción de la Base de datos (dbm-style) Ninguna
php_dbase.dll Funciones dBase Ninguna
php_dbx.dll Funciones dbx  
php_exif.dll FuncionesEXIF php_mbstring.dll. y, php_exif.dll se debe cargar después de php_mbstring.dll en php.ini.
php_fbsql.dll Funciones FrontBase Ninguna
php_fdf.dll FDF: Formato de datos de formularios de funciones. Requiere: fdftk.dll (incluido)
php_filepro.dll Funciones filePro Acceso de sólo lectura
php_ftp.dll Funciones FTP Ninguna
php_gd2.dll Funciones de libreria de imagen GD GD2
php_gettext.dll Funciones Gettext PHP <= 4.2.0 requiere gnu_gettext.dll (incluido), PHP >= 4.2.3 requiere libintl-1.dll, iconv.dll (incluido).
php_hyperwave.dll Funciones HyperWave Ninguna
php_iconv.dll Conversión de caracteres ICONV Requiere: iconv-1.3.dll (incluido), iconv.dll
php_ifx.dll Funciones Informix Requiere: Librerias Informix
php_iisfunc.dll Funciones de administracion IIS Ninguna
php_imap.dll POP3 y Funciones NNTP IMAP Ninguna
php_ingres.dll Funciones Ingres Requiere: Librerias Ingres
php_interbase.dll Funciones de InterBase Requiere: gds32.dll (incluido)
php_ldap.dll Funciones LDAP Requiere libeay32.dll, ssleay32.dll (incluido)
php_mbstring.dll Funciones Multi-Byte String Ninguna
php_mcrypt.dll Funciones Mcrypt Encryption Requiere: libmcrypt.dll
php_mhash.dll Funciones Mhash Requiere: libmhash.dll (incluido)
php_mime_magic.dll Funciones Mimetype Requiere: magic.mime (incluido)
php_ming.dll Funciones para Flash Ming Ninguna
php_msql.dll Funciones mSQL Requiere: msql.dll (incluido)
php_mssql.dll Funciones MSSQL Requiere: ntwdblib.dll (incluido)
php_mysql.dll Funciones MySQL Requiere libmysql.dll (incluido)
php_mysqli.dll Funciones MySQLi Requiere libmysql.dll (libmysqli.dll en PHP <= 5.0.2) (incluido)
php_oci8.dll Funciones Oracle 8 Requiere: Librerias cliente Oracle 8.1+
php_openssl.dll Funciones OpenSSL Requiere: libeay32.dll (incluido)
php_pdf.dll Funciones PDF Ninguna
php_pgsql.dll Funciones PostgreSQL Ninguna
php_shmop.dll Funciones Shared Memory Ninguna
php_snmp.dll Funciones SNMP ¡Solamente NT!
php_soap.dll Funciones SOAP Ninguna
php_sockets.dll Funciones Socket Ninguna
php_sybase_ct.dll Funciones Sybase Requiere: librerias cliente Sybase
php_tidy.dll Funciones Tidy Ninguna
php_tokenizer.dll Funciones Tokenizer Ninguna
php_w32api.dll Funciones W32api Ninguna
php_xmlrpc.dll Funciones XML-RPC Requiere: iconv.dll (incluido)
php_xslt.dll Funciones de XSLT Requiere sablot.dll, expat.dll, iconv.dll (incluido).
php_yaz.dll Funciones YAZ Requiere: yaz.dll (incluido)
php_zip.dll Ficheros Zip incluido Acceso de sólo lectura
php_zlib.dll Funciones de compresión ZLib Ninguna

Linea de Comandos PHP en Microsoft Windows

Esta sección contiene notas y sugerencias específicas para conseguir ejecutar PHP en la línea de comandos para Windows.

Nota:

Usted debe leer primero el manual de instalación

Cómo ejecutar PHP desde la línea de comandos sin hacer ningún cambio a Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Pero hay algunos pasos sencillos que puede seguir para hacer esto simple. Algunas de estas medidas ya se deberían haber tomado, pero se repiten aquí para ser capaz de proporcionar una completa secuencia paso a paso.

Si sigue estos pasos permitirá ejecutar scripts PHP desde cualquier directorio sin necesidad de escribir el ejecutable PHP o la extensión .PHP y todos los parámetros, será enviada a el script para el procesamiento.

En el ejemplo a continuación se detallan algunos de los cambios de registro que se puede hacer manualmente.

Ejemplo #24 Registro de cambios

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

Con estos cambios el mismo comando se puede escribir como:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
O, si la ruta de acceso "C:\PHP Scripts" está en el variable de entorno PATH:
script -arg1 -arg2 -arg3

Nota:

Hay un pequeño problema si tiene intención de utilizar esta técnica y usar scripts PHP como filtro de línea de comandos, como el ejemplo a continuación:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
o
dir | script -arg1 -arg2 -arg3
Es posible que el script simplemente se cuelga y no salga nada. Para hacer esto operacional, es necesario hacer otro cambio en el registro.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Información adicional sobre este tema se pueden encontrar en el » Artículo de la base de conocimientos de Microsoft: 321788. A partir de Windows 10, este ajuste parece haber sido invertido, haciendo que la instalación predeterminada de Windows 10 admita manejadores de consola heredados automáticamente. Esta »  entrada del foro de Microsoft proporciona la explicación.


Instalación en sistemas Windows
PHP Manual