Configuración de PHP con Apache en Windows, como CGI

Valoración del artículo:
Aprende cómo configurar PHP y Apache para que trabajen conjuntamente en un sistema Windows. Instalación como CGI.
Publicado: 08/3/03
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
El presente artículo trata de cómo configurar PHP y Apache para que trabajen conjuntamente en un sistema Windows. Además, este articulo asume que hay un servidor Apache configurado en el Windows, y que funciona correctamente.

Referencia: Si deseamos conocer las distintas posibilidades para la instalación de PHP en los distintos sistemas operativos y servidores, puede ser de utilidad la lectura del artículo Instalación de PHP en nuestro servidor.

Existen dos formas de configurar PHP para trabajar con Apache, instalar como un módulo o instalar como un CGI. En este artículo vamos a ver cómo instalarlo com CGI, aunque disponemos de otro artículo para instalar PHP como módulo en Apache.

Para instalar PHP como un CGI hay que seguir los siguientes pasos:

En primer lugar, hay que descargarse PHP desde la página de php.net. Existen dos versiones, una que tiene un instalador, y otra que es un fichero ZIP. Hay que descargarse esta última.

Una vez descargado, hay que descomprimirlo dentro de una carpeta, esta no tiene que estar bajo el árbol de directorios de Apache. El artículo asumirá que se descomprime dentro de la carpeta C:\PHP. Comprobar que los contenidos del archivo ZIP no quedan en un subdirectorio de la carptea C:\PHP, sino directamente en dicha carpeta.

Dentro de la carpeta c:\PHP se encuentra un fichero llamado PHP4ts.dll, hay que mover el fichero dentro de la carpeta: c:\windows\system ó c:\winnt\system

A continuación, dentro de la carpeta c:\php se encuentra un fichero llamado php.ini-recomended. Hay que copiar este fichero dentro de la carpeta c:\Windows, y renombrarlo a php.ini.

En este fichero se encuentra toda la configuración de PHP, y las modificaciones en la configuración de PHP (mostrar Errores, variables globales etc...) se encuentra dentro del mismo.
Es muy recomendable cambiar la directiva display_errors que por defecto esta en OFF, y pornerla en ON, para poder ver los errores que se producen en las páginas durante el desarrollo. Para un servidor en producción en conveniente dejarla en OFF.

Una vez se han hecho estos cambios, queda indicarle al Apache, donde se encuentra instalado el PHP, para ello hay que editar el fichero httpd.conf que se encuentra dentro de la carpeta conf, en la carpeta de instalación del apache (por defecto c:\archivos de programa\apache group\apache2\conf)

Abrir el fichero, y situarse al final del mismo, y escribir las siguientes líneas:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

En ellas se indica donde se encuentra el ejecutable de php, y lo asocia a los ficheros .php que se encuentren dentro de apache.

A continuación reiniciar el servidor Apache, y ya esta!

Por último, indicar que para probar la nueva instalación, es recomendable crear un fichero php con el siguiente contenido:

<? phpinfo();?>

Luego lo guardamosdentro de la carpeta raíz de documentos del Apache (por defecto c:\archivos de programa\apache group\apache2\htdocs ), con un nombre terminado en .php, por ejemplo info.php

Para ejecutarlo, a través de un navegador, escribir la dirección http://localhost/info.php.
Debería aparecer una pantalla como la que se muestra a continuación.

Si la vemos correctamente es que todo ha ido bien y que tenemos perfectamente instalado PHP en nuestro servidor Apache.

Nota: Este tipo de instalación de PHP sobre Apache es poco recomendada por motivos de seguridad. Podemos seguirla para configurar PHP en local, con intención de desarrollar nuestras páginas web, pero nunca si vamos a utilizar el servidor en un entorno de producción, es decir, en un servidor que se encuentre permanentemente conectado a Internet sirviendo páginas a todo tipo de usuarios.

Sería necesario instalar PHP como un módulo de Apache, en lugar de CGI, para dotar al sistema de una mayor seguridad, y también más potencia.


Referencia: En esta FAQ damos otras opciones para la instalación de PHP, utilizando programas que permiten instalar y configurar Apache + PHP + MySQL en un sencillo paso, accesible para todos los usuarios: Cómo instalar PHP en Windows.

Comentarios
Fueron enviados 28 comentarios al artículo
13 comentarios no revisados
15 comentarios revisados:
Por: Fernando Cuadrado
17/3/03
ATENCION!! Esta manera de instalar el PHP es conciderada un SUICIDIO en el archivo install.txt que viene en PHP4.

Tambien dice que es aconsejable poner un nombre aleatorio al Script /php/

RESPUESTA

Es cierto que no es segura esta manera de instalar PHP, así que no se aconseja para un servidor en producción, además tampoco es muy recomendable instalar Apache sobre Windows, ya que, aunque para la versión 2 de Apache se ha creado un módulo específico, este adolece de ciertos problemas de seguridad.

De todos modos, esta instalación es perfectamente válida para el desarrollo de vuestros sitios web en local, es decir, para un servidor de desarrollo y que no está expuesto a posibles ataques.

Nota: en la sección de FAQs explicamos lo que es un servidor de desarrollo y un servidor en producción. También se puede conocer el proceso de instalación de PHP como módulo de Apache, que soluciona los problemas de seguridad a los que te refieres.

Por: Elena DP
09/5/03
Si queremos poner PHP como modulo (no como CGI) estando PHP4ts.dll y php4apache2.dll en la carpeta c:\php\sapi es suficiente y NO es necesario copiarlos a c:\winnt\system32.

Con respecto a las modificaciones al httpd.conf de Apache2.x NO es necesario lo del ScriptAlias, basta con poner lo del LoadModule y AddType
Por: Elena DP
09/5/03
La forma descrita en el articulo es para poner PHP como CGI. Creo que deberías comentar la forma de poner PHP como módulo.
Por: Fabian Mestre Socarras
09/9/03
Yo he configurado Apache y PHP bajo windows manualmente y me parece bien aprender primero de es amanera, pero me gustaría informarle a toda la comunidad la existencia de unos instaladores automaticos como el Appserv y el Foxserv, que instala facilmente Apache, PHP y MySQL en un solo proceso y sin configurar nada. Esto solo existe para windows astimosamente, para ambientes Linux ya hay que mirar los archivos INSTALL de cada paquete. Gracias.
Por: Mak
22/9/03
Hola, me gustaría haceros una sugerencia. ¿Podríais poner el modo de configurar PHP para que funcione con el Apache en Windows2000, pero en modo SAPI?
Gracias.
M@k
Por: victor
26/9/03
Si quieres utilizar tanto ASP como PHP bajo windows XP, es mejor tener instalado tanto Apache como IIS(aunque como sabria que servidor actuar dependiendo de la página que queramos mostrar) o con IIS para los dos es suficiente??

RESPUESTA:

Lo que está claro es que debes tener el IIS para poder programar en ASP. A partir de aquí, si también quieres utilizar el Apache para PHP puedes hacerlo, pero no es necesario dado que el IIS puede entender también PHP. Cualquiera de las dos soluciones es buena.

Un saludo y espero haber resuelto tus dudas.

Por: Sergio Rozalén
31/8/04
El articulo es fantastico. Solo un apunte. Yo he montado PHP 5 con Apache 2.0.50 y hay que matizar un par de cosas.
l ini en la carpeta PHP no está.
Y el nombre del exe es distinto (php-cgi.exe). Haciendo esos retoque se configura perfecto.

Espero que está experiencia os ayude.
Un saludo.
Por: PRICE
11/3/05
Yo tengo una pequeña dura, ¿es nesesario q el apache este instalado en nuestro odenador? ¿o se puden instalar en un servidor gratuito? Lo pregunto por que a mi me seria muy costoso instalarlo en mi ordenador, y tengo un espacio web gratuito de 100MB de espacio.
Por: Leandro Jauande
26/5/05
Si estamos instalando PHP 5.0.4 veremos que el archivo DLL es php5ts.dll esta en la carpeta C:PHP si estamos siguiendo los pasos.
Y en el httpd.conf debemos al final agregar estas lineas

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

Varia del original en que apunta a otro ejecutable.-
Esto es por que está versión del PHP trae 3 ejecutables, si ponemos como esta en el articulo original no funciona, pero modificandolo como escribi arriba funciona muy bien.-

Espero este aporte sea de ayuda.-

Salu2 Leandro.-
Por: JAIR DIEZ
28/3/06
INSTALAR PHP COMO CGI NO ES MUY RECOMENDABLE, PERO ES MUY PRACTICO YA QUE CONCES EL FUNCIONAMIENTO INTERNO. ACONSEJO INSTALAR PHP COMO MODULO DE APACHE.
Por: Elian
15/5/06
he hecho todo eso.. pero cunado entro desde el Firefox me aparece esto:

Forbidden

You don't have permission to access /php/php.exe/info.php on this server.
Por: NICOLAS (México)
21/9/06
Price, seguramente ya esta resuelta tu pregunta desde hace ya casi un año que la publicaste pero me gustaría aún así responderla para que la gente que esta investigando encuentre la respuesta.

No es necesario instalar el apache/php/mysql en tu máquina ya que puedes trabajar con algun servidor gratuito que ya lo tenga instalado y funcionando, pero es muy recomendable hacerlo ya que cuando estas realizando un sitio normalmente haces alguna modificación a tu código y lo pruebas para asegurarte que esta bien hecho, por lo que imaginate si estas programando tendrías que estar subiendo el archivo modificado al servidor gratuito y probarlo, en vez de nada mas verificarlo directamente en tu computadora. Al final de cuentas el sitio lo tienes que subir a un servidor de paga o gratuito para que sea publicado, pero esto lo haces cuando ya esta todo funcionando y listo para ser publicado.
Por: Klau
25/11/06
para que no de el error You don't have permission to access /php/php.exe/test.php on this server"
hay que hacer lo sgate. en httpd.conf al final del mismo agregar como se menciono en el articulo:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

mas los permiso del nuevo alias que es lo que sigue

<Directory "C:/php">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

eso es todo. a mi me funciono buy bien
espero les sea de utilidad
Por: Manuel Paz
14/4/07
El tutorial es muy bueno solo quiero añadir que para la versión 2.2.4 de Apache y php 5.2.1 el directorio php/sapis no existe todo lo que tenga que ver con copiar archivo de o hacia dicho directorio deberá de ser hacia php/ext y en lugar de usar php4apache2.dll hay que usar php5apache2_2.dll

Saludos
Por: ZequeZ
15/9/07
Es muchisimo mas facil usar el XAMPP, que tiene todo el pack re bien hecho y te viene con muchas herramientas. Al principio, cuando no sabia ni como era lo de localhost, no entendia ni medio, veia en la ventanita que decia apache, y mysql y me imaginaba un mapache, que se yo xD

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Últimas noticias
Alojados en el grupo