Tema:
PHP como Módulo de Apache bajo Windows y no como un CGI.
Pregunta:
¿Como instalo PHP como Módulo de Apache en Windows?
Respuesta:
Trataré de explicar brevemente como configurar PHP4 como módulo del servidor Apache bajo Windows:
En mi caso, he instalado:
Apache 1.3.26
PHP 4.1.2
en los siguientes directorios, Uds. deberán guiarse por sus instalaciones:
c:\www\inetpub\Apache
c:\www\inetpub\php
y el
htdocs lo tengo en otro disco:
D:\www\htdocs ¡¡¡OJO!!!:
Para que cada cambio funcione, deben hacer un Restart de Apache.
Pasos a seguir:
-Editar el file
\Apache\conf\httpd.conf
-Buscar
#ServerName y modificarla así:
ServerName http://
-Buscar
DocumentRoot y modificarla así:
DocumentRoot "D:/www/htdocs"
-Buscar
ScriptAlias /cgi-bin/ y modificarla así:
ScriptAlias /cgi-bin/ "C:/www/inetpub/Apache/cgi-bin/"
-Debajo de esa línea agregar:
ScriptAlias /php/ "C:/www/inetpub/php/"
-Buscar la sección
Addtype application/ y modificarla o agregarle estas líneas:
Addtype application/x-httpd-php .php
Addtype application/x-httpd-php .php3
Addtype application/x-httpd-php .php4
Addtype application/x-httpd-php .phtml
-Buscar la sección
Actions y agregar:
Action application/x-httpd-php "/www/inetpub/php/php.exe"
- Buscar
DirectoryIndex index.html y modificarla así:
DirectoryIndex index.html index.htm index.php index.php3 index.shtml Este paso lo hacen solo si Apache les da error al testearlo, algunas versiones lo necesitan
-----------------------------------------------------------------------
-Buscar la sección LoadModule y agregar:
LoadModule php4_module c:/www/inetpub/php/sapi/php4apache.dll
-Buscar la sección AddModule y agregar al final:
AddModule mod_php4.c
-----------------------------------------------------------------------
-Guardar el file
\Apache\conf\httpd.conf
-> En
win9x/Me, copiar el file:
\php\php4ts.dll al directorio
x:\windows\system
-> En
win NT/2k/XP, copiar el file:
\php\php4ts.dll al directorio
x:\windows\system32
-En el directorio
\php\, buscar el file
\php\php.ini-dist, renombrarlo como
php.ini
y moverlo así:
-> En
win9x/Me, al directorio
x:\windows\system
-> En
win NT/2k/XP, al directorio
x:\windows\system32 Testeamos la configuración de Apache:
Ahora, vamos a
menu inicio -> Apache HTTP Server -> Configure Apache Server -> Test Configuration
Si la ventana que se abre nos da:
bla, bla, Syntax OK, ya podemos probar PHP con Apache,
sinó, deberán revisar otra vez los pasos y hacer las modificaciones necesarias.
* Para probar Apache:
-Vamos a
menu inicio -> Apache HTTP Server -> Control Apache Server -> Start
-Ejecutamos el navegador y escribimos esta URL:
http://localhost/ <enter>
Si aparece la página de bienvenida de Apache, está bien configurado.
* Para probar PHP4:
-Vamos a
menu inicio -> Apache HTTP Server -> Control Apache Server -> Start
-Con el Block de notas escribimos:
Código PHP:
<? echo "Hola, mi primera página PHP"; ?>
-Y lo guardamos como
mi_prog.php en el directorio:
/htdocs/. (En texto plano. Todos
los programas deben guardarse aqui o en subdirectorios dentro de este).
-Ejecutamos el navegador y escribimos esta URL:
http://localhost/mi_prog.php <enter>
-Si aparece el texto
Hola, mi primera página PHP,
¡PHP4 está funcionando! * Para saber si PHP4 funciona como Módulo de Apache o como CGI:
-Vamos a
menu inicio -> Apache HTTP Server -> Control Apache Server -> Start
-Con el Block de notas escribimos:
Código PHP:
<? phpinfo(); ?>
-Y lo guardamos como
info.php en el directorio:
/htdocs/
-Ejecutamos el navegador y escribimos esta URL:
http://localhost/info.php <enter>
-Debe aparecer un resúmen de la configuración de PHP4 bajo Apache, en el primer recuadro buscamos
Server API
-> Si a la derecha dice
CGI,
PHP4 está funcionando como un CGI-BIN (add-on)
-> Si dice
Apache,
está funcionando como módulo directo del servidor Apache Este ejemplo utiliza variables globales y solo funciona si PHP4 es un módulo de Apache:
-Con el Block de notas, escribimos este programa y lo guardamos como:
/Apache/htdocs/prueba.php Código PHP:
<?
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="ACCESO RESTRINGIDO: Ingrese sus datos."');
header('HTTP/1.0 401 Unauthorized');
echo 'AUTORIZACION REQUERIDA.';
exit;
}
else {
echo "Su nombre de usuario es: $PHP_AUTH_USER","<br>";
echo "Su contraseña es: $PHP_AUTH_PW","<br>";
}
?>
-En el navegador probamos:
http://localhost/prueba.php <enter>
-Tambien pueden utilizar en vez de
http://localhost,
http://127.0.0.1 Esto es un agregado para los que tienen Windows XP: * Resolver el problema de las sessions si no funcionan correctamente:
Lo único que tiene que hacer es crear un dir
tmp en la raíz del HD primario (o sea, por ej:
C:\tmp ) y modificar en el
php.ini la linea (en el root de c:\windows):
session.save_path= C:\tmp
@J@:
Sólo funciona si el TMP es creado en el directorio raiz del disco de arranque.
Salu2.