PHP es un lenguaje de programación bastante usado en entornos web dinámicos, que ha evolucionado muchísimo en muy poco tiempo. Hace ya 2 años que salió la versión 5, sin embargo, aun siendo mejor, no está siendo usada por la comunidad de programadores. Las razones son simples. Mejor dicho, la razón es simple. Casi todo el hosting que permite la ejecución de scripts PHP está sólamente preparado para PHP4. Los cambios entre ambas versiones son profundos (sobre todo en cuestiones de OOP) y la compatibilidad hacia atrás de la versión 5 tiene sus problemas. Ante esta perspectiva, las empresas de hospedaje web han preferido mantener la versión 4 para que todo el código existente (que es cuantioso) siga funcionando.
Pero como las mejoras de la versión 5 (aunque ya está en preparación la versión 6) son evidentes, qué mejor que juguetear con ella en un entorno controlado (como puede ser nuestro ordenador personal) e ir viendo sobre el terreno cómo se comportan nuestros programas en ambas versiones.
Los siguientes pasos explican como instalar la versión 4 de PHP como módulo de Apache y la versión 5 como CGI, sobre un entorno de desarrollo con Microsoft Windows XP y Apache (ambos componentes se sobrentiende que están ya instalados). Para facilitar la instalación, se considerará que Apache (versión 1.3.x o 2.0.x, no la versión 2.2.x porque actualmente todavía no existe módulo de PHP para esta versión) está instalado en
c:\apache\
.- Descargar las últimas versiones disponibles tanto de la versión 4 como de la 5. A día de hoy: 4.4.4 y 5.1.6. Es conveniente bajar los comprimidos para win32, no los instaladores. De esta forma podremos llevar a cabo la instalación de una forma más limpia y sin que nos falte nada (los instaladores para Windows sólo instalan PHP como CGI, no como módulo de Apache, y vienen sin extensiones externas).
- Descomprimir la versión 4 en el directorio
c:\php\
. - Copiar el archivo
c:\php\php.ini-recommended
comoc:\php\php.ini
. - Será necesario cambiar algunos parámetros del archivo
php.ini
. Son estos:
extension_dir = "c:/php/extensions/"
session.save_path = "C:\php\session" ; además será necesario crear ese directorio - Añadir al PATH del sistema las rutas
c:\php
yc:\php\extensions
. Para ello, al final del actual PATH, añadimos lo siguiente:;c:\php;c:\php\extensions
. El punto y coma es el separador de rutas. De esta forma, en lugar de copiar el fichero al directorioc:\windows\system32\
, podremos actualizar a la próxima versión de PHP4 de una forma más ágil y limpia. Lo malo de hacerlo así, es que será necesario reiniciar el ordenador para que el sistema relea el PATH (con cerrar la sesión de usuario no es suficiente). - Crear el fichero
c:\apache\conf\php4.conf
con el siguiente contenido:
<VirtualHost *:80>
# carga el módulo de Apache de PHP
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
# permite tener el fichero php.ini en ese directorio y no en c:\windows
PHPIniDir "C:/php"
</VirtualHost> - Editamos el fichero
c:\apache\conf\httpd.conf
y añadimos como última línea esto:
include conf/php4.conf
Es conveniente terminar la línea con un retorno de carro (por si acaso). - Por último, como antes he indicado, habrá que reiniciar el sistema por haber cambiado el PATH. Tras hacerlo, ya tendremos instalado PHP4 como módulo de Apache. Para comprobarlo, crearemos en DocumentRoot (se considera como directorio de publicación para este artículo
c:\apache\htdocs\
, pero se puede cambiar en el archivo de configuración), el ficheroprueba_php.php
, que tendrá el siguiente contenido:
<?php
phpinfo();
?>
Para ejecutarlo, habrá que apuntar el navegador web ahttp://localhost/prueba_php.php
y ver qué aparece. Si todo ha ido bien, deberían mostrarse las características del entorno y los módulos de PHP cargados.
Ahora sigamos con PHP5.
- Para ello, lo primero será descomprimir la versión 5 en el directorio
c:\php5\
. - Copiar el archivo
c:\php5\php.ini-recommended
comoc:\php5\php.ini
. - Habrá que retocar ciertos parámetros del archivo
php.ini
. Son estos:
; Windows: "\path1;\path2"
;include_path = ".;c:\php5\includes" ; aunque esté comentado, corregimos la ruta para futuros usos
extension_dir = "c:/php5/ext/"
session.save_path = "c:/php5/session" ; además será necesario crear ese directorio - Paso opcional. Si necesitamos acceder a bases de datos MySQL, deberemos habilitar la extensión en el archivo php.ini porque por defecto, en la versión 5, viene deshabilitada. Deberemos dejar así esta línea:
extension=php_mysql.dll ; sin el punto y coma del principio para que no se tome como comentario - Crear el fichero
c:\apache\conf\php5.conf
con el siguiente contenido:
# para habilitar la escucha de Apache en otro puerto además del 80
Listen 8080
<VirtualHost *:8080>
ScriptAlias /php5/ "c:/php5/"
SetEnv PHPRC c:/php5
# si nuestro DocumentRoot es otro directorio, habrá que cambiarlo
<Directory "c:/apache/htdocs">
Options +ExecCGI +FollowSymLinks
</Directory>
AddHandler php-cgi-script .php
Action php-cgi-script /php5/php-cgi.exe
</VirtualHost> - Editamos el fichero
c:\apache\conf\httpd.conf
y añadimos como última línea esto:
include conf/php5.conf
Es conveniente, como antes hemos indicado, terminar la línea con un retorno de carro (por si acaso). - Como último paso, habrá que reinicar de nuevo el servicio de Apache para que admita los cambios de configuración. Para probar que esta parte también funciona, esta vez pondremos en el navegador web
http://localhost:8080/prueba_php.php
. Nótese el cambio de puerto en la petición. PHP4, al ser módulo de Apache, recogerá las peticiones que se hagan al puerto 80. PHP5, en cambio, escuchará lo que se le mande en el puerto 8080. De esta forma, ya tenemos listo el entorno mixto de PHP.
Actualización (2006-11-09):
En la instalación de PHP4, si queremos habilitar alguna extensión (por ejemplo la relacionada con gettext [
php_gettext.dll
] para internacionalizar nuestras aplicaciones), será necesario añadir al path del sistema el directorio c:\php\dlls\
. Para ello, habrá que modificar el path y agregar al final: ;c:\php\dlls
. Después, hay que reiniciar el equipo para que el sistema se adapte al cambio.
4 comentarios:
Si se realizan cambios en el PATH del sistema, es necesario reiniciar la máquina para que el gestor de servicios (services.exe), ponga a disposición del resto de los servicios del sistema (Apache es uno de ellos) los cambios realizados. Para más detalles, puedes consultar el servicio técnico de Microsoft.
Una explicación muy clara y muy bien hecha.
Me ha sido de gran utilidad.
Muchas gracias!
hola,
necesito agregar este directorio '/misEjecutables/programs' a la lista de directorios ejecutables del archivo http.conf y darle permisos de ejecucion...
es con /Directory?
alguien lo sabe?
gracias
Donde dice directorios "ejecutables", voy a entender directorios "publicados" en el servidor Apache. Una posible solución a tu problema, podría ser esta:
<Directory /misEjecutables/programs>
Options +ExecCGI
</Directory>
Más información, en la web de Apache.
Publicar un comentario