A lo largo de este artículo voy a explicar la manera de hacer funcionar Apache junto con el lenguaje de programación PHP, estando orientado a la distribución del sistema operativo GNU/Linux Fedora 9 (de la que por cierto, dentro de muy pronto va a salir la nueva versión, Fedora 11, llamada “Leonidas”), no habiendo cambios significativos  bajo otras distribuciones en los procedimientos que se detallan a continuación. He adjuntado, además,  una serie de tips y configuraciones fácilmente aplicables que nos harán la vida más fácil para trabajar con estas aplicaciones.

¿Qué es Apache?

Apache es un servidor web HTTP de código abierto desarrollado desde 1995 escrito en C y multiplataforma, muy extendido en su uso actualmente. Se distribuye bajo una licencia de tipo Apache, y puede ser descargado desde su página web o desde los repositorios de nuestra distribución GNU/Linux. Su última versión es la 2.2.11.

¿Qué podemos hacer con él?

Aparte de su uso en servidores usados para páginas de internet, Apache es una herramienta interesante que, combinada con diferentes herramientas, puede sernos útil a la hora de aprender acerca de las diferentes vulnerabilidades web en un entorno controlado. También puede ser utilizado para desarrollar aplicaciones en lenguajes de programación que requieren de un servidor, véase PHP, lenguaje en el que nos vamos a centrar es esta guía.

¿Qué es PHP?

Logotipo de PHP

Logotipo de PHP

PHP es un potente lenguaje de programación interpretado, multiparadigma, multiplataforma y orientado al desarrollo web, siendo su última versión la 5.2.9-2. Se publica bajo una licencia de tipo PHP License, la cual es considerada software libre por parte de la FSF. Su sintaxis es muy parecida a la de los lenguajes de programación C o Perl. En su web hay mucha documentación interesante, y más información acerca del lenguaje.

Comenzamos

Bien, una vez aclarados los conceptos principales en cuanto a definición y aplicaciones del software, voy a proceder a la explicación en sí.

Lo primero que debemos hacer es descargar e instalar correctamente el paquete “httpd”. Desde la terminal (con privilegios de superusuario):

yum install httpd

Con esto, se instalarán los paquetes necesarios para ejecutar Apache. Para evitar confusiones, me gustaría indicar que la instalación no genera ningún tipo de acceso directo en el menú.

Antes de probar si la instalación ha sido realizada correctamente, es muy conveniente configurar debidamente o deshabilitar SELinux, como mínimo, durante las pruebas que hagamos con Apache, ya que muchas veces provoca conflictos con él alterando su funcionamiento.

Esto se puede hacer de la siguiente forma:

Sistema-Administración-SELinux Management – Deshabilitamos SELinux

Ahora toca instalar PHP. Desde la terminal, y con privilegios de superusuario:

yum install php

Y con esto tendremos instalado PHP. Este paquete tampoco genera ningún tipo de entrada en los menús del sistema.

Ahora que tenemos instalado y configurado lo necesario, vamos a hacer una prueba para ver si todo funciona correctamente. Para ejecutar Apache, nos vamos a:

Sistema – Administración – Servicios

Estamos accediendo a una zona de configuración del sistema, por lo que nos hará falta introducir nuestra contraseña de root antes de poder cambiar nada. Una vez allí, hacemos click con el ratón encima del servicio “httpd”, posteriormente marcamos las opciones “Enable” y “Start”. Para desactivar el servicio, en la misma ventana marcamos las opciones de parar y deshabilitar el servicio.

Vale, ya tenemos funcionando el Apache. Ahora, para probarlo, nos vamos al navegador e introducimos en la barra de direcciones “localhost”. Inmediatamente debería abrirse la página de bienvenida de Apache en Fedora, lo cual significa que hemos instalado todo correctamente.

Los archivos que queramos ejecutar han de ser copiados al directorio /var/www/html/. Para acceder a este directorio necesitamos privilegios de root en nuestro sistema, y puede resultar fastidioso tener que utilizar la consola continuamente para copiar cualquier archivo, por lo que voy a compartir un pequeño tip que me comentó Lix hace tiempo. Gracias a esto, desde nuestro usuario normal podremos acceder a ese directorio con total libertad, cosa que se agredece debido a la constante utilización del mismo, ya que resulta mucho más cómodo.

Simplemente introducimos en la terminal (con privilegios de superusuario):

chown -R tu-user:tu-user /var/www/html/

Para que no andéis introduciendo comandos a ciegas, voy a dar una breve explicación de este comando:

  • chown: Sirve para cambiar el propietario de un archivo o directorio (en nuestro caso, /var/www/html/).
  • -R: Se utiliza para que todos los archivos y subdirectorios de /var/www/html/ se incluyan en la acción del comando.
  • tu-user:tu-user: Es el usuario al que se le asigna el directorio.
  • /var/www/html/: El directorio que queremos que le sea asignado al usuario en cuestión.

Con esto, haremos mucho más cómodo el trabajo con Apache. A continuación voy a dar un simple ejemplo de uso con un archivo real, “pruebas.php”, para que se termine de entender su uso. Lo primero, tenemos que crear un archivo llamabo “pruebas.php” o similar, siempre y cuando tenga la extensión .php. Editamos el archivo con Gedit o con el editor de texto que tengamos a mano, y añadimos el siguiente contenido:

<html>

<body>

<?php

echo “Probando en PHP”;

?>

</body>

</html>

Una vez hecho esto, guardamos el archivo y lo movemos a /var/www/html/. Luego desde el navegador escribimos la siguiente dirección:

localhost/pruebas.php

Con esto se debería de ejecutar el archivo, mostrando en la pantalla “Probando en PHP”. Y con este sencillo ejemplo final, doy por finalizado este artículo, que espero haya sido de mucha utilidad, ya que no hay demasiada información sobre cómo manejar de forma eficaz este tipo de software, y aún menos en distribuciones concretas.