Instalación en sistemas Windows

Esta sección aplica para Windows 98/Me/NT/2000/XP. PHP no trabajará con plataformas de 16 bit, tales como Windows 3.1 y algunas veces nos referiremos a las plataformas soportadas como Win32. Windows 95 no es soportado desde la versión de PHP 4.3.0.

Hay principalmente dos formas de instalar PHP para Windows: ya sea manualmente o usando el instalador InstallShield.

Si usted tiene MicroSoft Visual Studio, también puede compilar PHP del código fuente original.

Una vez que ha instalado PHP en su sistema Windows, tal vez quiera instalar varias extensiones para agregar funcionalidad.

Windows InstallShield

El instalador de PHP en Windows está disponible de la página de descargas en http://www.php.net/downloads.php. Este instala la versión CGI de PHP, y para ISS, PWS y Xitami configura el servidor web también.

Nota: Mientras el instalador InstallShield es una forma sencilla de hacer trabajar PHP, está restringido en muchos aspectos, como por ejemplo la configuración automática de extensiones no está soportada. Todo el conjunto de extensiones soportadas está solo disponible descargando la distribución binaria zip.

Primero que nada instale el servidor HTTP de su elección en su equipo y asegurese de que funciona.

Ejecute el instalador y siga las instrucciones dadas por el instalador. Son soportadas dos tipos de instalación - estándar, la cuál provee los valores por defecto sensibles a los ajustes "settings", y avanzada, la cuál va preguntando segun avanza la configuración.

El "wizard" obtiene suficiente información para configurar el archivo php.ini y configura el servidor web para usar PHP. Para IIS y también para PWS en estaciones de trabajo NT, se despliega un listado de todos los nodos en el servidor que pueden utilizar "scripts", de tal forma que puede seleccionar de entre esos nodos cuál desea agregarle los mapeos de los "scripts" PHP.

Una vez que se ha completado la instalación, el instalador le informará si necesita reiniciar el sistema, reiniciar el servidor web o solo comenzar a utilizar PHP.

Aviso

Tenga en cuenta que esta configuración de PHP no es segura. Si desea tener una configuración de PHP segura, es mejor que instale de forma manual, y cambiar cada opción cuidadosamente. Esta manera de configuración automática da una instalación de PHP lista para usarse instantáneamente, pero no significa que puede ser usada en servidores web que vayan a estar en línea en Internet.

Pasos de instalación manual

Esta guia de instalación le ayudará a manualmente isntalar y configurar PHP en su servidor web en Windows. La versión original de esta guia fue proveida por Bob Silva, y puede ser encontrada en http://www.umesd.k12.or.us/php/win32install.html. Usted necesita descargar la distribución binaria zip de la página de descargas en http://www.php.net/downloads.php.

PHP 4 para Windows vienen en tres presentaciones - un ejecutable CGI, un ejecutable CLI (sapi/php.exe) y algunos otros modulos SAPI:

php4apache.dll - modulo Apache 1.3.x
php4apache2.dll - modulo Apache 2.0.x
php4isapi.dll - Modulo ISAPI para servidores web que cumplen con ISAPI como IIS 4.0/PWS 4.0 o recientes.
php4nsapi.dll - modulo Netscape/iPlanet

El último modulo es nuevo en PHP4, y provee un incremento en desempeño significativo y alguna nueva funcionalidad. La versión CLI está designada para "scripting" en línea de comandos. Para más información acerca de CLI está disponible en el capítulo acerca de usar PHP desde la línea de comandos

Aviso

Los modulos SAPI han sido mejorados significativamente en la entrega 4.1, sin embargo, puede que encuentre algunos errores del servidor u otros modulos del servidor tales como falla de ASP, en sistemas más viejos.

requerimientos DCOM y MDAC: Si usted escoge uno de los modulos SAPI y usa Windows 95, asegurese de descargar e instalar la actualización de DCOM de las Páginas DCOM de Microsoft. si usa Microsoft Windows 9x/NT4 descargue la última versión de los Componentes de Acceso de Datos Microsoft (MDAC por sus siglas en inglés) para su plataforma. MDAC está disponible en http://msdn.microsoft.com/data/.

Los siguientes pasos deben ser realizados en todas las instalaciones antes de instrucciones específicas de cualquier servidor.

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- ejecutable CLI  - SOLO para linea de comandos
   |
   |
   +--dlls                -- soporte dll para extensiones --> Windows system directory
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- dlls de extension para PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- archivos de soporte para SNMP
   |
   |
   +--openssl             -- archivos de soporte para Openssl
   |
   |
   +--pdf-related         -- archivos de soporte para PDF
   |
   |
   +--sapi                -- SAPI dlls
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-php4isapi.dll
   |  |
   |  |-..
   |
   |-install.txt
   |
   |-..
   |
   |-php.exe              -- ejecutable CGI
   |
   |-..
   |
   |-php.ini-dist
   |
   |-php.ini-recommended
   | 
   |-php4ts.dll           -- dll principal --> Windows system directory
   | 
   |-...

El binario CGI - c:\php\php.exe -, el binario CLI - c:\php\cli\php.exe - y los modulos SAPI - c:\php\sapi\*.dll - dependen del dll principal c:\php\php4ts.dll. Usted debe asegurarse, que este dll puede ser encontrado por su instalación PHP. El orden de la búsqueda para este dll es como sigue:

El mismo directorio en donde se llama a php.exe. En caso que use un modulo SAPI, el mismo directorio de donde su servidor web carga el dll (ej. php4apache.dll).
Cualquier directorio en su variable de ambiente PATH de Windows.

Los siguientes pasos son opcionales.

Estas son las instrucciones básicas para que usted pueda fácilmente configurar PHP en Windows. El siguiente paso es escoger un servidor web y habilitarle que ejecute PHP. Estan disponibles las instrucciones de instalación para los siguientes servidores web:

Compilar los fuentes

Antes de empezar, es necesario responder la pregunta: ¿Por qué es compilar en Windows tan díficil? dos razones tengo en mente:

  1. Windows no (todavía) se una a la gran comunidad de desarrolladores que desean libremente compartir sus fuentes. Como un resultado directo, la inversión necesaria en la infrastructura requerida para soportar tal desarrollo no se ha conseguido. Generalmente, lo que se está disponible ha sido posible por el uso de las necesarias utilidades de Unix. No se sorprenda si algo de esta herencia se muestra de cuando en cuando.

  2. Muchas de las instrucciones que siguen son de la variedad "fije y olvide". Así que sientese e intente seguir las instrucciones siguientes tan fielmente como pueda.

Requerimientos

Para compilar y construir PHP usted necesita un ambiente de desarrollo de Microsoft. se recomienda Microsoft Visual C++ 6.0. Para extraer los archivos descargados necesita una utilería de extracción (ej. winzip). Si todavía no tiene una utilería unzip, puede obtener una versión gratuita de InfoZip.

Antes comenzar, tiene que descargar...

Finalmente, usted va a necesitar los mismos fuentes de PHP 4. Puede obtener la última versión en desarrollo usando CVS anónimo, un snapshot o la entrega más reciente de los fuentes en tarball.

Poniendo todo junto

Después de descargar los paquetes requeridos tiene que extrerlos en un lugar apropiado.

  • Cree un directorio de trabajo donde todos los archivos vayan a dar despues de extraídos, ej. C:\work.

  • Cree el directorio win32build dentro de su directorio de trabajo (C:\work) y descomprima win32build.zip en él.

  • Cree el directorio bindlib_w32 dentro de su directorio de trabajo (C:\work) y descomprima bindlib_w32.zip en él.

  • Extraiga el código fuente PHP descargado en su directorio de trabajo (C:\work).

Siguiendo estos pasos la estructura de si directoria se verá como esto:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Cree los directorios c:\usr\local\lib. Copie bison.simple de c:\work\win32build\bin a c:\usr\local\lib.

Nota: los usuarios de Cygwin deben omitir el último paso. Un ambiente Cygwin propiamente instalado provee los archivos mandatorios bison.simple y bison.exe.

Configure MVC ++

El siguiente paso es configurar MVC ++ para prepararnos para compilar. ejecute Microsoft Visual C++, y de el menu selecciones Herramientas (Tools) => Options. En el dialogo, seleccione la pestaña directorios (directories). Secuencialmente cambie el menu desplegable a los archivos de Ejecutables, Incluir, y Librerias. Sus cambios deben lucir como esto:

  • Archivos ejecutables: c:\work\win32build\bin, usuarios de Cygwin : cygwin\bin

  • Archivos incluidos: c:\work\win32build\include

  • Librerias: c:\work\win32build\lib

Compilar resolv.lib

Usted debe compilar la libreria resolv.lib. Decida si quiere tener simbolos de rastreo de errores disponible (bindlib - Win32 Debug) o no (bindlib - Win32 Release). Compile la configuración apropiada:

  • Para usuarios del ambiente gráico, arranquen VC++, y entonces seleccionen Archivo => Abrir área de trabajo, navegue a c:\work\bindlib_w32 y seleccione bindlib.dsw. entonces seleccione Compilar => Fijar Configuración activa y seleccione la configuración deseada. Finalmente seleccione Compilar => Compilar todo.

  • Para usuarios de línea de comandos, asegurense de que tiene las variables de ambiente de C++ registradas, o que ha ejecutado vcvars.bat, y entonces ejecute uno de los siguientes comandos:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

En este punto, usted debe tener un resolv.lib disponible en cualquiere de sus subdirectorios c:\work\bindlib_w32\Debug o Release. Copie este archivo en su directorio c:\work\win32build\lib sobreescribiendo el archivo del mismo nombre que se encuentra ahi.

Compilando

La mejor manera de empezar es compilar la version CGI.

  • Para usuarios del ambiente gráfico, arranquen VC++, y entonces seleccionen Archivo => Abrir area de trabajo y seleccionen c:\work\php-4.x.x\win32\php4ts.dsw. Entonces seleccionen Compilar=>Fijar configuración activa y seleccione la configuración deseada, ya sea php4ts - Win32 Debug_TS o php4ts - Win32 Release_TS. Finalmente seleccione Compilar=>Compilar todo.

  • Para usuarios de línea de comandos, asegurese de que tiene ya sea las variables de ambiente de C++ registradas, o ejecutó vcvars.bat, y entonces ejecute uno de los siguientes comandos desde el directorio c:\work\php-4.x.x\win32 :

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • En este punto, usted debe tener un php.exe usable, en uno de sus subdirectorios c:\work\php-4.x.x.\Debug_TS o Release_TS.

Es posible hacer arreglos menores para requisitos particulares al proceso de compilación editando el archivo main/config.win32.h. Para un ejemplo puede cambiar la localización por defecto de php.ini, las extensiones integradas y la ubicación por defecto de las extensiones.

En seguida, puede que queires compular la versión CLI la cuál esta designada para usar PHP desde la línea de comandos. Los pasos a seguir son los mismos que para compilar la versión CGI, excepto que tiene que seleccionar php4ts_cli - Win32 Debug_TS o php4ts_cli - Win32 Release_TS como archivo del projecto. Después de una compilación exitosa, usted encontrará el php.exe en el directorio ya sea Release_TS\cli\ o Debug_TS\cli\.

Nota: Si quiere usar PEAR y el instalador confortable de línea de comandos, el CLI-SAPI es mandatorio. Para más información acerca de PEAR y el instalador lea la documentación en el sitio de PEAR.

Para poder compilar el modulo SAPI (php4isapi.dll) para integración de PHP con Microsoft IIS, fije su configuración activa a php4isapi-whatever-config y compile el dll deseado.

Instalacion de las extensiones de Windows

Después de instalar PHP y un servidor web en Windows, usted probablemente quiera instalar algunas extensiones para agregar funcionalidad. Puede escoger cuales extensioes quiere cargar cuando PHP inicia modificando su php.ini. Puede tambien cargar modulos dinámicamente en sus "scripts" usando la función dl().

Los DLLs para las extensiones de PHP tienen el prefijo 'php_' en PHP 4 (y 'php3_' en PHP 3). Esto prevee confusión entre las extensiones de PHP y sus librerias de soporte.

Nota: En PHP 4.3.1 BCMath, Calendar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML y Zlib el soporte está integrado. Usted no necesita cargar ninguna extensión adicional para usar esas funciones. Vea en su distribución los archivos README.txt o install.txt o this table para una lista de los modulos integrados.

La ubicación por defecto en la que PHP busca por extensiones es c:\php4\extensions. Para cambiar está opción para reflejar tu configuración de PHP edita tu archivo php.ini:

Nota: Si está ejecutando una version de modulo de servidor de PHP recuerde reiniciar su servidor web para reflejar los cambios a php.ini.

La siguiente tabla describe algunas de las extensiones disponibles y los dlls extras requeridos.

Tabla 3-1. Extensiones PHP

ExtensionDescripciónNotas
php_bz2.dllfunciones de compresión bzip2Ninguna
php_calendar.dllfunciones de conversion de CalendarioIntegrada desde PHP 4.0.3
php_cpdf.dllfunciones ClibPDFNinguna
php_crack.dllfunciones CrackNinguna
php3_crypt.dllfunciones Cryptno se conocen
php_ctype.dllfamilia de funciones ctypeIntegrada desde PHP 4.3.0
php_curl.dlllibreria de funciones Cliente URL, CURLRequiere: libeay32.dll, ssleay32.dll (ligado)
php_cybercash.dllfunciones de pago eletrónico CybercashPHP <= 4.2.0
php_db.dllfunciones DBMObsoleta. Use DBA en vez de ésta (php_dba.dll)
php_dba.dllDBA: Funciones de abstraction layer DataBase (dbm-style)Ninguna
php_dbase.dllfunciones dBaseNinguna
php3_dbm.dlllibreria Berkeley DB2no se conocen
php_dbx.dllfunciones dbxNinguna
php_domxml.dllfunciones DOM XML PHP <= 4.2.0 requiere: libxml2.dll (incluida) PHP >= 4.3.0 requiere: iconv.dll (incluida)
php_dotnet.dllfunciones .NETPHP <= 4.1.1
php_exif.dllRead EXIF encabezados de JPEGNinguna
php_fbsql.dllfunciones FrontBasePHP <= 4.2.0
php_fdf.dllFDF: funciones de formato de formulario de datos.Requiere: fdftk.dll (ligado)
php_filepro.dllfunciones fileProAcceso de solo lectura
php_ftp.dllfunciones FTPIntegrada desde PHP 4.0.3
php_gd.dllGD libreria de funciones de imagenes Quitada en PHP 4.3.2. También note que las funciones de truecolor no están disponibles e GD1, en lugar de esto, usephp_gd2.dll.
php_gd2.dllGD libreria de funciones de imagenesGD2
php_gettext.dllfunciones Gettext PHP <= 4.2.0 requiere gnu_gettext.dll (incluida), PHP >= 4.2.3 requiere libintl-1.dll, iconv.dll (incluida).
php_hyperwave.dllfunciones HyperWaveNinguna
php_iconv.dllICONV conversión de caracteresRequiere: iconv-1.3.dll (incluida), PHP >=4.2.1 iconv.dll
php_ifx.dllfunciones InformixRequiere: librerias Informix
php_iisfunc.dllfunciones de administración IISNinguna
php_imap.dllIMAP funcuines POP3 y NNTPPHP 3: php3_imap4r1.dll
php_ingres.dllfunciones Ingres IIRequiere: Librerias Ingres II
php_interbase.dllfunciones InterBaseRequiere: gds32.dll (incluida)
php_java.dllfunciones JavaPHP <= 4.0.6 requiere: jvm.dll (incluida)
php_ldap.dllfunciones LDAP PHP <= 4.2.0 requiere libsasl.dll (incluida), PHP >= 4.3.0 requiere libeay32.dll, ssleay32.dll (incluida)
php_mbstring.dllfunciones Multi-Byte StringNinguna
php_mcrypt.dllfunciones Mcrypt EncryptionRequiere: libmcrypt.dll
php_mhash.dllfunciones MhashPHP >= 4.3.0 requiere: libmhash.dll (incluida)
php_mime_magic.dllfunciones MimetypeRequiere: magic.mime (incluida)
php_ming.dllMing funciones para flashNinguna
php_msql.dllfunciones mSQLRequiere: msql.dll (incluida)
php3_msql1.dllcliente mSQL 1no se conocen
php3_msql2.dllcliente mSQL 2no se conocen
php_mssql.dllfunciones MSSQLRequiere: ntwdblib.dll (incluida)
php3_mysql.dllfunciones MySQLIntegrada en PHP 4
php3_nsmail.dllfunciones de mail Netscapeno se conocen
php3_oci73.dllfunciones Oracleno se conocen
php_oci8.dllfunciones Oracle 8Requiere: librerias del cliente Oracle 8.1+
php_openssl.dllfunciones OpenSSLRequiere: libeay32.dll (incluida)
php_oracle.dllfunciones OracleRequiere: librerias de cliente Oracle 7
php_overload.dllfunciones sobrecarga de objetosintegrada desde PHP 4.3.0
php_pdf.dllfunciones PDFNinguna
php_pgsql.dllfunciones PostgreSQLNinguna
php_printer.dllfunciones de ImpresoraNinguna
php_shmop.dllfunciones Memoria compartidaNinguna
php_snmp.dllSNMP gunciones get y walk¡Sólo NT!
php_sockets.dllfunciones de SocketNinguna
php_sybase_ct.dllfunciones SybaseRequiere: librerias cliente de Sybase
php_tokenizer.dllfunciones TokenizerIntegrada desde PHP 4.3.0
php_w32api.dllfunciones W32apiNinguna
php_xmlrpc.dllfunciones XML-RPCPHP >= 4.2.1 requiere: iconv.dll (incluida)
php_xslt.dllfunciones XSLT PHP <= 4.2.0 requiere sablot.dll, expat.dll (incluida). PHP >= 4.2.1 requiere sablot.dll, expat.dll, iconv.dll (incluida).
php_yaz.dllfunciones YAZRequiere: yaz.dll (incluida)
php_zip.dllfunciones Zip FileAcceso de sólo lectura
php_zlib.dllfunciones de compresión ZLibIntegrada desde PHP 4.3.0