dominios y alojamiento web en hostalia

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

08 de marzo de 2003
Valoración del artículo:
Aprende cómo configurar PHP y Apache para que trabajen conjuntamente en un sistema Windows. Instalación como CGI.
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.

Nota: 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:windowssystem ó c:winntsystem

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 programaapache groupapache2conf)

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 programaapache groupapache2htdocs ), 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.

Compartir en redes sociales

Comentarios
Fueron enviados 37 comentarios al artículo
21 comentarios no revisados
16 comentarios revisados:
Por: Fernando Cuadrado
17/3/2003
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/2003
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/2003
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/2003
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/2003
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/2003
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/2004
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/2005
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/2005
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/2006
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/2006
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/2006
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/2006
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/2007
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/2007
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

NIGASO
php sobre apache
24/6/2010
Gracias klau, te luciste con ese aporte. Me funciono muy bien

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...