Tema: FAQ's de PHP
Ver Mensaje Individual
  #39 (permalink)  
Antiguo 13/01/2003, 12:03
Avatar de BooMeranGz
BooMeranGz
 
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 2 meses
Puntos: 0
De acuerdo PHP como Módulo de Apache bajo Windows

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.