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.
Esta sección contiene instrucciones para instalar y configurar manualmente PHP en Windows de Microsoft.
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.
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.
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
Esta sección contiene instrucciones específicas de la instalación de PHP en Microsoft Internet Information Services (IIS).
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.
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.
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:
En el menú Inicio de Windows seleccione "Run:", type "inetmgr" y haga clic en "Ok";
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";
Haga clic en "Directory Security" tab;
Tome nota de un "User name:" campo en el cuadro de dialogo "Authentication Methods"
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)
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:
En el menú Inicio de Windows seleccione "Run:", teclee "inetmgr" y haga clic en "Ok";
Haga clic derecho en el nodo ""Web Sites" de la vista de árbol y seleccione "Properties";
Haga clic en "Documents" tab;
Haga clic en el botón "Add..." y enter en "index.php" para el " Contenido de la página por defecto :".
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
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
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\"
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.
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:
En el menu de inicio de Windows seleccione "Run:", teclee "optionalfeatures.exe" y click "Ok";
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;
Haga clic en Aceptar y espere hasta que se complete la instalación
Para activar el soporte FastCGI en Windows Server 2008 y Windows Server 2008 R2:
En el menú Inicio de Windows elegir "Run:", teclee "CompMgmtLauncher" y click "Ok";
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";
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" ;
Click "Next" y luego "Install" ay espere a que la instalación se complete.
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.
Siga estos pasos para crear una asignación de controlador de IIS para PHP en la interfaz de usuario Administrador de IIS:
En el menú Inicio de Windows elegir "Run:", escriba "inetmgr" y click "Ok";
En la interfaz de usuario de IIS Manager, seleccione el nodo de servidor en el "Connections" vista de árbol;
En el "Características" Página de abrir el "Handler Mappings" feature;
En el "Actions" haga click en panel "Add Module Mapping...";
En el "Add Module Mapping" diálogo entre lo siguiente:
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;
Haga clic en Aceptar en todos los cuadros de diálogo para guardar la configuración.
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.
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)
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
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']"
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
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
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.
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
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
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'); ?>.
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.
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>
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(); ?>
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 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
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
Para instalar PHP como un manejador CGI, haga lo siguiente:
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 %*
Se pueden encontrar más detalles sobre cómo configurar PHP como ejecutable CGI en » http://benoit.noss.free.fr/php/install-php.html
Para instalar PHP con NSAPI, haga lo siguiente:
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 %*
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"]
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 ...]
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>
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").
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
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...]
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...]
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"
Puede comprobar el estado usando la función phpinfo().
Nota:
Pero tenga en cuenta: El soporte para nsapi_virtual() es EXPERIMENTAL.
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.
Busque el archivo llamado mappings.ini (en el directorio de configuración) en el directorio de instalación de Sambar.
Abra mappings.ini y adicione la siguiente línea de abajo [ISAPI]:
Ejemplo #22 Configuracion de Sambar ISAPI
#for PHP 4 *.php = c:\php\php4isapi.dll #for PHP 5 *.php = c:\php\php5isapi.dll
Ahora reinicie el servidor Sambar para que los cambios surtan efecto.
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.
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.
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.
Asegúrese de que el servidor web está funcionando, y apunte el navegador a la consola de administración xitamis (por lo general http://127.0.0.1/admin), Y haga clic en Configuración.
Navegue a los filtros, y ponga la extensión PHP que debe analizar (es decir, .php) en el campo de las extensiones del fichero(.xxx).
En el comando del filtro o script coloque la ruta y el nombre de el ejecutable PHP CGI es decir, C:\php\php.exe para PHP 4, o C:\php\php-cgi.exe para PHP 5.
Pulse el icono "Guardar".
Reinicie el servidor para reflejar los cambios.
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
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:
Tendrá que cambiar los parámetros de la extension_dir para apuntar al directorio donde está la extensión, o donde tenga localizado el fichero php_*.dll. Por ejemplo:
extension_dir = C:\php\extensions
Habilite la extensión(s) en php.ini que desea utilizar descomentando las siguientes líneas extension=php_*.dll en php.ini. Esto se hace mediante el borrado de la cabecera, desde la extensión que desea cargar.
Ejemplo #23 Habilitar la extensión Bzip2 para PHP-Windows
// cambiar la siguiente línea de ... ;extension=php_bz2.dll // ... to extension=php_bz2.dll
Algunas de las extensiones de archivos necesita DLL extras para trabajar. Un par de ellos se puede encontrar en el paquete de distribución, en la carpeta principal, pero algunos, por ejemplo Oracle, (php_oci8.dll) requieren ficheros DLL que no se incluyen con el paquete de distribución. No se olvide de incluir C:\php en el PATH del sistema (Este proceso se explica por separado en Preguntas Frecuentes de entrada).
Algunos de estos DLLs no se incluye con la distribución de PHP. Consulta cada página de documentación de las extensiones para más detalles. Además, lea el manual sección titulada Instalación de extensiones PECL para más detalles sobre PECL. Un gran número de extensiones de PHP se encuentran en PECL, y estas extensiones requieren una descarga independiente .
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.
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 |
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.
Nota:
Tanto PATH como PATHEXT son variables de sistema preexistentes importantes en Windows, por lo que se ha de asegurarse de no sobrescribir dichas variables, solamente agregarle algo.
Añada la ubicación del ejecutable de PHP (php.exe, php-win.exe o php-cli.exe dependiendo de su versión de PHP y las preferencias de presentación) a la variable de entorno PATH. Lea más acerca de cómo añadir el directorio de PHP PATH en la entrada correspondiente de preguntas frecuentes.
Añada la extensión .PHP de la variable de entorno PATHEXT. Esto se puede hacer al mismo tiempo, con la modificación de la variable de entorno PATH. Siga los mismos pasos como se describe en las Preguntas frecuentes pero habría que modificar la variable de entorno PATHEXTen lugar de la variable de entorno PATH.
Nota:
La posición en que se coloca el .PHP determina qué secuencia de comandos o programa se ejecuta cuando hay nombre de archivos coincidentes. Por ejemplo, colocar .PHP antes de .BAT hará que el script se ejecute, en lugar de el archivo por lotes, si hay un fichero por lotes con el mismo nombre.
Asociar la extensión .PHP con un tipo de fichero. Esta se hace ejecutando el siguiente comando:
assoc .php=phpfile
Asociar el tipo de fichero phpfile con el adecuado ejecutable PHP. Esto se hace ejecutando el siguiente comando:
ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
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
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:
odir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3Es posible que el script simplemente se cuelga y no salga nada. Para hacer esto operacional, es necesario hacer otro cambio en el registro.dir | script -arg1 -arg2 -arg3Informació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.Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001