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.
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. |
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 |
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.
Extraiga el archivo de distribución en el directorio que haya escogido, es un buen comienzo c:\. El paquete zip se extrae en una carpeta como php-4.3.1-Win32 la cuál se asume que se renombrará a php. Por razones de conveniencia y para trabajar independiente de la versión los siguientes pasos asumen que la versión de PHP vive en c:\php. Puede escoger cualquier otra ubicaión, pero probablemente no deba usar una ruta que incluya espacios (por ejemplo: C:\Program Files\PHP no es una buena idea). Algunos servidores pueden fallar si lo usa de esta manera. La estructira del directorio donde extrajo el archivo zip se parecerá a:
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. |
Lo mejor es apostar por asegurarse de hacer disponible php4ts.dll, sin importar que interface planee usar (CGI o modulo SAPI). Para esto, debe copiar este dll en un directorio de su PATH en Windows. El mejor lugar es el directorio de sistema de Windows:
C:\Windows\System para Windows 9x/ME |
C:\WINNT\System32 para Windows NT/2000 o C:\WINNT40\System32 para NT/2000 server |
C:\Windows\System32 para Windows XP |
El siguiente paso es fijar un archivo configuración valido para PHP, php.ini hay dos archivos .ini distribuidos en el archivo zip, php.ini-dist y php.ini-recommended. Le aconsejamos que use php.ini-recommended, porque optimizamos por defecto los ajustes de rendimiento y seguridad. Lea cuidadosamente este documento y ademas estudie los ajustes iniciales y fije cada elemento manualmente. Si quiere alcanzar la mejor seguridad, entonces este es el camino para usted, aunque PHP trabaja bien con estos archivos ini. Copie el archivo ini de su elección al directorio donde PHP lo encuentre y renombrelo a php.ini. Por defecto PHP busca php.ini en su directorio de Windows:
En Windows 9x/Me/XP copie el archivo ini a su %WINDIR%, el cuál es típicamente C:\Windows. |
En Windows NT/2000 copie el archivo ini a su %WINDIR% o %SYSTEMROOT%, los cuales son típicamente C:\WINNT o C:\WINNT40 para servidores NT/2000. |
Si está usando NTFS en Windows NT, 2000 o XP, asegurese de que el usuario que corre el servidor web tiene permisos de lectura sobre php.ini (ej. hagalo leíble para todos).
Los siguientes pasos son opcionales.
Edite su archivo nuevo php.ini. Si planea usar OmniHTTPd, no siga el siguiente paso. Fije el doc_root para que apunte al document_root de sus servidores web. Por ejemplo:
escoja cuales extensiones quiere cargar cuando inicia PHP. Vea la sección acerca extensiones de Windows, sobre como fijar una, y saber que está ya integrado. Note que en una nueva instalación es recomendable primero tener PHP trabajando y probado sin extensiones antes de habilitarlas en php.ini
En PWS y IIS, puede fijar las opciones de configuración browscap para que apunten a: c:\windows\system\inetsrv\browscap.ini en Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini en NT/2000 y c:\windows\system32\inetsrv\browscap.ini en XP.
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:
.. la familia de servidores Windows, Servidor Web Personal (PWS por sus siglas en inglés) 3, 4 y superiores; Servidor de Información de Internet (ISS por sus siglas en inglés) 3, 4 y superiores.
.. los servidores Apache Apache 1.3.x, y Apache 2.x.
.. el servidor Netscape/iPlanet.
.. el servidor OmniHTTPd.
.. el servidor Oreilly Website Pro.
.. el servidor Sambar.
.. el servidor Xitami.
Antes de empezar, es necesario responder la pregunta: ¿Por qué es compilar en Windows tan díficil? dos razones tengo en mente:
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.
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.
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...
.. las herramientas de compilación de win32, del sitio de PHP en http://www.php.net/extra/win32build.zip.
..el código fiente para el resolvedor de nombres DNS usado por PHP de http://www.php.net/extra/bindlib_w32.zip. Este remplaza la libreria resolv.lib incluida en win32build.zip.
Si planea compilar PHP como un modulo de Apache también necesitará los fuentes de Apache.
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.
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).
+--c:\work | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-4.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--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.
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
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"
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.
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:
Necesitará cambiar la opción extension_dir para apuntar al directorio donde sus extensiones están, o donde usted haya pueto sus archivos php_*.dll. Por favor no olvide la última diagonal invertida "\". Por ejemplo:
Habilite las extensiones in php.ini que quiere usar quitando el comentario de las lineas extension=php_*.dll en php.ini. Esto es hecho quitando el (;) al principio de la linea para las extensiones que quiere utilizar.
Ejemplo 3-4. Habilita extensión Bzip2 para PHP-Windows
|
Algunas de las extensiones necesitan algunos dlls extras para trabajar correctamente. Algunos de ellos pueden ser encontrados en el paquete que descomprimió en el directorio c:\php\dlls\, pero algunos, por ejemplo Oracle (php_oci8.dll) requieren dlls los cuales no estan disponibles en el paquete de distribución. Copie los dlls incluidos de la carpeta c:\php\dlls a su PATH de Windows, algunos lugares seguros son:
c:\windows\system for Windows 9x/Me |
c:\winnt\system32 for Windows NT/2000 |
c:\windows\system32 for Windows XP |
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
Extension | Descripción | Notas |
---|---|---|
php_bz2.dll | funciones de compresión bzip2 | Ninguna |
php_calendar.dll | funciones de conversion de Calendario | Integrada desde PHP 4.0.3 |
php_cpdf.dll | funciones ClibPDF | Ninguna |
php_crack.dll | funciones Crack | Ninguna |
php3_crypt.dll | funciones Crypt | no se conocen |
php_ctype.dll | familia de funciones ctype | Integrada desde PHP 4.3.0 |
php_curl.dll | libreria de funciones Cliente URL, CURL | Requiere: libeay32.dll, ssleay32.dll (ligado) |
php_cybercash.dll | funciones de pago eletrónico Cybercash | PHP <= 4.2.0 |
php_db.dll | funciones DBM | Obsoleta. Use DBA en vez de ésta (php_dba.dll) |
php_dba.dll | DBA: Funciones de abstraction layer DataBase (dbm-style) | Ninguna |
php_dbase.dll | funciones dBase | Ninguna |
php3_dbm.dll | libreria Berkeley DB2 | no se conocen |
php_dbx.dll | funciones dbx | Ninguna |
php_domxml.dll | funciones DOM XML | PHP <= 4.2.0 requiere: libxml2.dll (incluida) PHP >= 4.3.0 requiere: iconv.dll (incluida) |
php_dotnet.dll | funciones .NET | PHP <= 4.1.1 |
php_exif.dll | Read EXIF encabezados de JPEG | Ninguna |
php_fbsql.dll | funciones FrontBase | PHP <= 4.2.0 |
php_fdf.dll | FDF: funciones de formato de formulario de datos. | Requiere: fdftk.dll (ligado) |
php_filepro.dll | funciones filePro | Acceso de solo lectura |
php_ftp.dll | funciones FTP | Integrada desde PHP 4.0.3 |
php_gd.dll | GD 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.dll | GD libreria de funciones de imagenes | GD2 |
php_gettext.dll | funciones Gettext | PHP <= 4.2.0 requiere gnu_gettext.dll (incluida), PHP >= 4.2.3 requiere libintl-1.dll, iconv.dll (incluida). |
php_hyperwave.dll | funciones HyperWave | Ninguna |
php_iconv.dll | ICONV conversión de caracteres | Requiere: iconv-1.3.dll (incluida), PHP >=4.2.1 iconv.dll |
php_ifx.dll | funciones Informix | Requiere: librerias Informix |
php_iisfunc.dll | funciones de administración IIS | Ninguna |
php_imap.dll | IMAP funcuines POP3 y NNTP | PHP 3: php3_imap4r1.dll |
php_ingres.dll | funciones Ingres II | Requiere: Librerias Ingres II |
php_interbase.dll | funciones InterBase | Requiere: gds32.dll (incluida) |
php_java.dll | funciones Java | PHP <= 4.0.6 requiere: jvm.dll (incluida) |
php_ldap.dll | funciones LDAP | PHP <= 4.2.0 requiere libsasl.dll (incluida), PHP >= 4.3.0 requiere libeay32.dll, ssleay32.dll (incluida) |
php_mbstring.dll | funciones Multi-Byte String | Ninguna |
php_mcrypt.dll | funciones Mcrypt Encryption | Requiere: libmcrypt.dll |
php_mhash.dll | funciones Mhash | PHP >= 4.3.0 requiere: libmhash.dll (incluida) |
php_mime_magic.dll | funciones Mimetype | Requiere: magic.mime (incluida) |
php_ming.dll | Ming funciones para flash | Ninguna |
php_msql.dll | funciones mSQL | Requiere: msql.dll (incluida) |
php3_msql1.dll | cliente mSQL 1 | no se conocen |
php3_msql2.dll | cliente mSQL 2 | no se conocen |
php_mssql.dll | funciones MSSQL | Requiere: ntwdblib.dll (incluida) |
php3_mysql.dll | funciones MySQL | Integrada en PHP 4 |
php3_nsmail.dll | funciones de mail Netscape | no se conocen |
php3_oci73.dll | funciones Oracle | no se conocen |
php_oci8.dll | funciones Oracle 8 | Requiere: librerias del cliente Oracle 8.1+ |
php_openssl.dll | funciones OpenSSL | Requiere: libeay32.dll (incluida) |
php_oracle.dll | funciones Oracle | Requiere: librerias de cliente Oracle 7 |
php_overload.dll | funciones sobrecarga de objetos | integrada desde PHP 4.3.0 |
php_pdf.dll | funciones PDF | Ninguna |
php_pgsql.dll | funciones PostgreSQL | Ninguna |
php_printer.dll | funciones de Impresora | Ninguna |
php_shmop.dll | funciones Memoria compartida | Ninguna |
php_snmp.dll | SNMP gunciones get y walk | ¡Sólo NT! |
php_sockets.dll | funciones de Socket | Ninguna |
php_sybase_ct.dll | funciones Sybase | Requiere: librerias cliente de Sybase |
php_tokenizer.dll | funciones Tokenizer | Integrada desde PHP 4.3.0 |
php_w32api.dll | funciones W32api | Ninguna |
php_xmlrpc.dll | funciones XML-RPC | PHP >= 4.2.1 requiere: iconv.dll (incluida) |
php_xslt.dll | funciones 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.dll | funciones YAZ | Requiere: yaz.dll (incluida) |
php_zip.dll | funciones Zip File | Acceso de sólo lectura |
php_zlib.dll | funciones de compresión ZLib | Integrada desde PHP 4.3.0 |