Dos opciones de instalación
Después de los
sudores que me había costado instalar Apache y PHP, estaba yo tan tranquilo pensando que aquella era la única posibilidad de instalación hasta que empecé a leer por un sitio y por otro lo de
módulo de Apache y pensaba yo -
¿qué atrevida es la ignorancia?- que se referían a
lo mismo y que eso de
módulo de Apache se referiría a que se utilizaba como servidor un
Apache.
Me
picó la curiosidad, me puse a
buscar y descubrí... que en un fichero llamado
install.txt que tenía en directorio PHP decía (eso sí,
escrito en raro):
«...PHP 4 for Windows comes in two flavours - a CGI executable (php.exe), and several SAPI modules...».
Lo de
two flavours me
sonó a dos formas de instalación y descubrí que
llevaba más de un año con mi PHP configurado para el
flavour CGI... y yo... sin enterarme.
Me miré en el espejo.. y tuve la sensación de que mis
orejas son mayores que las habituales y para más inri empecé a tener la sensación de que mi voz empezaba a tener un cierto tono... como de
rebuzno... ;-)
Admitido que -sin saberlo- mi configuración era
flavour CGI decidí probar a utilizar la otra configuración -el otro
flavour- (como
módulo de Apache) y -no sin algunos fracasos- conseguí hacer la configuración que te comento aquí... y me funcionó.
¿Qué configuración usar?
Una vez conocida la existencia de dos opciones de configuración se me planteó la
duda existencial. ¿cual era la mejor? ¿cual usar?...
¿a quien quieres más? ¿a papá o a mamá?..
Seguí leyendo el famoso
install.txt y los señores de PHP -que supongo yo que de esto sabrán- dicen que
como módulo de Apache proporciona una
performance muy mejorada y que además
incorpora algunas nuevas funcionalidades...
Pero... advierten que... -sobre todo para versiones de Windows inferiores a la 2000-
pueden surjir algunos problemas con el servidor (cita el
Error500, entre otros) y justifica los fallos mencionando que esta opción incorpora una mayor nivel de seguridad -
thread-safe- que es nuevo en PHP, que es mejor... pero que aun no ha sido suficientemente experimentado en producción... en definitiva que... instalado como
módulo de Apache PHP es más eficaz, tiene nuevas funcionalidades, es más seguro, pero... que cuidado... que puede dar fallos aún y que si quieres evitar ese riesgo de fallos, que sigas usando la configuración
flavour CGI.
La verdad es que llevo algunos días
probando que pasa como
módulo de Apache y -en honor a la verdad- no me ha ocurrido
nada raro...
Parece que es la
opción del futuro... yo te cuento como lo he configurado y te cuento también que me funciona... pero... usar una u otra opción, eso es cosa tuya...
...yo no quiero responsabilidades... ;-)
Instalando el PHP como módulo de Apache
La instalación que te comenté en las páginas anteriores (¿recuerdas lo de comentaba de que en Server API ponía a continuación CGI?) es la opción de
instalarlo como CGI.
Cuando probé a instalarlo
como módulo de Apache también tuve que descomprimir el fichero
php-4.3.0-Win32.zip en
c:\Apache, también se crea automáticamente un subdirectorio llamado
php-4.3.0-win32 y también lo
renombré y lo llamé
php .. a secas... para que mi
PHP estuviera en:
c:\Apache\php.
Igual que en la instalación anterior, también busqué el fichero
php4ts.dll que estaba en
c:\Apache\php, y también
lo copié y
lo pegué en
c:\windows\system, sobreescribíendo otro fichero que había en
c:\windows\system con ese nombre.
Como podrás observar, la instalación de PHP la hice
exactamente igual que en el caso anterior, lo que cambió un poquito... fué la configuración del fichero
http.conf
Configurando el httpd.conf para PHP como módulo de Apache
Abrí con
block de notas el fichero
httpd.conf (me refiero siempre al fichero original que se crea al instalar Apache) que estaba en
c:\Apache\conf, y busqué... una línea en la que decía
DirectoryIndex index.html index.html.var y la cambié por...
DirectoryIndex index.html index.php index.php3 index.htm index.html.var
Busqué también dos líneas -en httpd.conf- que decían:
# Example:
# LoadModule foo_module modules/mod_foo.so
e
inserté delante de ellas una línea que dice así:
LoadModule php4_module c:/Apache/php/sapi/php4apache.dll
¡¡Cuidado..!! En esta línea he puesto la ruta completa -tal como tengo hecha mi instalación- hasta la librería php4apache.dll
Si tienes una instalación distinta, no te olvides de modificarla y recuerda tambíen que lo de poner c:/Apache/php/sapi/php4apache.dll con las / así... no es un error... para la configuración de Windows hay que ponerlas exactamente así.. ;-)
Busqué otra línea que decía:
ClearModuleList
e
inserté -
debajo e inmediatamente después de ella- lo siguiente:
AddModule mod_php4.c
y por útimo, busqué otra línea que decía:
AddType application/x-tar .tgz
e
inserté encima de ella lo siguiente:
AddType application/x-httpd-php .php .phtml
guardé los cambios y ...
listo...el bote.. el fichero
httpd.conf ya está configurado..
Configuración del php.ini como módulo de Apache
Utilicé la misma configuración del
php.ini te comento en la página anterior (como CGI). Solo una mínica diferencia...
Donde dice:
; cgi.force_redirect = 1 no la
descomenté (no quité el punto y coma que va delante).
Hecha está salvedad, el resto de la configuración la hice exactamente igual que la que te comenté en la página anterior.
Probando la configuración como módulo de Apache
También en este caso -igual que en el anterior- utilicé el fichero
info.php. También pulsé Inicio.. Programas...Apache httpd Server y.. Start Apache in Consola... también se me abrió la ventanita de MS-DOS con el cursor intermitente... también la minimicé, abrí el Explorer y escribí la dirección: http://127.0.0.1/info.php (también habría funcionado escribiendo http://localhost/info.php) y me apareció esto...

Fíjate que ahora... donde dice:
Server API no pone
CGI sino
Apache. Eso parece indicar que PHP funciona correctamente, solo que ahora lo hace como...
módulo de Apache.
Me alegré
un montón... toda una vida usando el
flavour CGI... sin saberlo y ahora... ya puedo elegir
flavour
Quizá utilice
CGI en días de semana... y
módulo de Apache para los domingos... Será cuestión de pensarlo... ;-)