Ver índice
 Configuración de Apache 2.2.17 para PHP 5.3.8

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Para facilitar las cosas

A lo largo de este proceso –y en otros sucesivos– vas a encontrar ficheros que tienen el mismo nombre y que se diferencian sólo por la extensión. Sería una buena idea tener Windows configurado de forma que se visualicen siempre las extensiones de todos los tipos de ficheros.

Si nunca has usado esa opción de Windows bastará con que hagas doble clic en el icono Mi PC y vayas a la opción Ver (en el caso de Windows2000, XP o Vista habrás de ir a la opción Herramientas) de la ventana que se abre. Cuando se trate de Windows7 habrás de ir a Paneles de Control->Opciones de carpeta en el submenú de esa opción elige Opciones de Carpeta. Una vez en Opciones de Carpeta debes elegir la opción Ver de la nueva ventana y buscar la línea en la que dice Ocultar extensiones para los tipos de archivos conocidos y, desmarcando su casilla de verificación y pulsando sobre Aplicar y Aceptar ya podrás visualizar las extensiones de todos los ficheros.

Modificación del fichero httpd.conf para configurar PHP

Tal como comentábamos en la página anterior la utilización de PHP requiere introducir algunos cambios en la configuración de Apache. En el momento en el que se instala este servidor se crea automáticamente en el subdirectorio C:/ServidoresLocales/Apache/conf un fichero llamado httpd.conf que contiene la configuración por defecto del servidor Apache. Como recordarás lo hemos modificado durante el proceso de instalación para que el servidor utilice el puerto 80.

Tendremos que hacer algunas modificaciones más. Pero, como precaución por si tenemos algún problema y necesitamos volver a utilizar el fichero de la configuración por defecto, vamos a hacer una copia de seguridad. Abriremos el documento httpd.conf con un editor de textos cualquiera –lo más cómodo será utilizar Notepad ++ u otro editor que señale los números de línea– y con la opción guardar como crearemos una copia con el nombre httpd.orig

  ¡Cuidado!  

Si has utilizado el bloc de notas de Windows es probable que en el proceso anterior no te haya guardado como httpd.orig sino como httpd.orig.txt.
Comprueba los ficheros del directorio C:/ServidoresLocales/Apache/conf y si te ha ocurrido lo que comentamos tendrás que recurrir al conocido método de pulsar sobre el icono del fichero con el botón derecho del ratón, elegir la opción Cambiar nombre y quitar el .txt que aparece al final del nombre del archivo.

Una vez hecho esto ya podremos hacer las modificaciones con toda tranquilidad, así que volveremos a abrir el fichero httpd.conf para hacer los cinco cambios siguientes:

Fichero inicial    httpd.confNo es necesario modificar el nombre de este fichero. Ya debemos de tener una copia previa llamada http.orig
Guardar como    httpd.conf
Modificaciones en el fichero inicial
LíneaCambiosJustificación
129 Donde dice:Hemos de indicar a Apache que cargue el módulo que se encuentra en el sitio que indican la ruta y el nombre del fichero. Este módulo específico para Apache 2.2 (php5apache2_2.dll) es el que permite que el servidor Apache interactúe con PHP 5.
(línea en blanco)
cambiar por:
LoadModule php5_module C:/ServidoresLocales/php53/php5apache2_2.dll
219 Donde dice:Evita que se visualice la lista de ficheros contenidos en un directorio de servidor si se intenta acceder a una página inexistente
Options Indexes FollowSymLinks
cambiar por:
Options -Indexes FollowSymLinks MultiViews
241 Donde dice:Permite indicar que ficheros y en que orden han de buscarse cuando en la petición se indique el nombre del directorio pero no se especifique ninguna página.
DirectoryIndex index.html
cambiar por:
DirectoryIndex index.html index.htm index.php
384 Donde dice:Le indica a Apache que los únicos ficheros susceptibles de contener scripts que deban ser ejecutados por el intérprete de PHP son aquellos que tienen como extensión .php. Si un fichero con extensión distinta contuviera scripts PHP éstos no serían ejecutados.
(línea en blanco)
cambiar por:
AddType application/x-httpd-php .php
385 Donde dice:La inclusión de la línea PHPIniDir (una novedad respecto a versiones anteriores de Apache y PHP) permite indicar la ruta de acceso al fichero de configuración de PHP (php.ini) En la página siguiente trataremos la configuración de PHP.
#
sustituir por:
PHPIniDir  "C:/ServidoresLocales/php53"

Una vez efectuados estos cambios ya podremos guardar el fichero, sin cambiar su nombre original –httpd.conf–, y tendremos lista la nueva configuración de Apache. Solo nos falta reiniciar el servidor para que los cambios sean efectivos

Algunos detalles importantes sobre httpd.conf

La directiva de configuración de Apache, DirectoryIndex, tiene particular interés para comodidad del usuario. A través de ella le estaremos diciendo a Apache que cuando reciba una petición –dirigida a uno cualquiera de los directorios accesibles a través de HTTP– en la que no se especifique ningún nombre de página, debe comprobar si en ese directorio existe alguna página llamada index.html.

En caso de que dicha página existiera la mostraría y en caso contrario volvería a comprobar para ver si existe alguna otra llamada index.htm (el segundo nombre de página contenido en esa línea). Si tampoco se diera esa coincidencia continuará viendo si existe index.php. En el caso de que no encontrara ninguna que coincida con los nombres indicados en esta directiva daría un mensaje de error del tipo: File not found.

Esta opción de configuración de Apache es la que nos permite escribir direcciones del estilo www.boe.es en las que –sin especificar ningún nombre de página– nos aparece en pantalla el mismo contenido que si hubiéramos escrito:
www.boe.es/index.php

Si –con la configuración descrita en la tabla anterior– intentamos acceder a la dirección: http://localhost/images/ nos aparecería un mensaje como este:


Esto ocurre como consecuencia de haber puesto el signo menos delante de Indexes (¡cuidado! debe ir pegado a Indexes sin ningún espacio intermedio) en la línea Options -Indexes FollowSymLinks MultiViews.

El subdirectorio images no contiene ficheros con nombre index.html, ni tampoco index.php ni index.htm (los especificados en la directiva DirectoryIndex) y el signo menos lo que hace es denegar el acceso (en el caso de no indicar el nombre de algún documento en la dirección) a los directorios que no los contengan. Si no hubiéramos modificado esa directiva nos aparecería una lista con todos los ficheros contenidos en ese subdirectorio, tal como puedes ver en esta imagen.


La configuración de Apache permite múltiples opciones y ofrece muchas posibilidades. Tantas, que justificarían todo un curso dedicado al estudio de este servidor y sus opciones de configuración. No entraremos en ese ámbito pero, aunque no vamos a modificarlos, es conveniente conocer algunos otros elementos importantes de httpd.conf.

DocumentRoot "C:/ServidoresLocales/Apache/htdocs"

Esta línea que se ha incluido automáticamente al hacer la instalación indica la ruta y el nombre del directorio en el que, obligatoriamente, han de estar los documentos –y los subdirectorios– susceptibles de ser servidos a través del protocolo HTTP.

Cualquier documento que estuviera fuera de este directorio sería inaccesible, por lo tanto todos los documentos PHP que vayas creando deberás guardarlos dentro de este directorio htdocs. Como es lógico, bastaría cambiar esa línea de la configuración para utilizar como raíz del servidor otro directorio cualquiera.

ServerName localhost

Esta otra línea –también contenida en httpd.conf– es la que determina el nombre del servidor y a través de ella se identifican las peticiones que el navegador realiza a ese servidor. Por esta razón, cuando probábamos la instalación de Apache, escribíamos como dirección http://localhost.