Configuración de Apache 2.2.11

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 dife- rencian 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.

Te sugerimos que hagas esta modificación. Por si nunca has usado esa opción de Windows, te describimos cómo hacerlo.

Bastará con que hagas doble click en el icono Mi PC y vayas a la opción Ver (en el caso de Windows2000 o XP habrás de ir a la opción Herramientas) de la ventana que se abre. 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.

Efecto de los cambios
en httpd.conf

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 sí trataremos de conocer –de forma somera– los por qués de las modificaciones que comentamos a la derecha.

En la primera modificación le hemos indicado a Apache que deberá cargar un módulo que se encuentra en el sitio que indican la ruta y el nombre del fichero. Este módulo es el que permite que el servidor interactúe con PHP cuando sea necesario.

La segunda de las modificaciones resulta de gran importancia a efectos de seguridad. En la parte derecha tienes comentados las efectos que produce el uso de esa directiva de configuración

Mediante la tercera de ellas le estamos 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.php (el segundo nombre de página contenido en esa línea).

En caso de no encontrar esa coincidencia deberá continuar comprobando una a una, y de forma secuencial, la existencia de las páginas siguientes hasta encontrar alguna cuyo nombre coincidiera con uno de la lista establecida en la configuración de httpd.conf. En el caso de que no encontrara ninguna que coincida con los nombres indi- cados 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.isftic.mepsyd.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.isftic.mepsyd.es/index.html

Como podrás ver, esta opción de configuración añade mayor comodidad para al usuario.

Mediante la cuarta modificación AddType application/x-httpd-php se 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.

Por último, 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) sobre cuya configuración trataremos en la página siguiente.

Otras modificaciones
en httpd.conf

A lo largo de curso iremos incorporando algunos servicios que requerirán algunos otros cambios en la configuración de Apache.

Hablaremos de ellos cuando sea necesario realizarlos.

 
 

Modificación del fichero httpd.conf
para configurar PHP como módulo de Apache

    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 Apache 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 editado y modificado durante el proceso de instalación para que el servidor utilizara 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 PHP Coder que señala 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 block 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.conf
Guardar como    httpd.conf
Modificaciones en el fichero inicial
LíneaCambios
127 Donde dice:
(línea en blanco)
cambiar por:
LoadModule php5_module C:/ServidoresLocales/php5/php5apache2_2.dll
217 Donde dice:
Options Indexes FollowSymLinks MultiViews
cambiar por:
Options -Indexes FollowSymLinks MultiViews
239 Donde dice:
DirectoryIndex index.html
cambiar por:
DirectoryIndex index.html index.htm index.php
382 Donde dice:
(línea en blanco)
cambiar por:
AddType application/x-httpd-php .php
383 Donde dice:
#
sustituir por:
PHPIniDir  "C:/ServidoresLocales/php5"
    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.

Algunos detalles importantes sobre httpd.conf

    Si –con la configuración descrita más arriba– intentamos acceder a la dirección: http://localhost/images/ nos aparecería un mensaje con 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.


    Aunque no vamos a modificarlos, es conveniente saber que existen algunos otros elementos importantes en 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 que vayamos generando a lo largo del curso, deberemos 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.