> Manuales > Instalación y configuración de Apache

Tutorial para configurar Apache en un servidor de desarrollo, de una manera muy práctica, para poder servir un dominio en local, con archivos existentes fuera de la carpeta de publicación.

En el presente artículo vamos a mostrar una de las configuraciones fundamentales que todo desarrollador debe conocer, para poder gestionar varios proyectos dentro de su propio ordenador local en Linux, asociados a dominios de Internet que se servirán desde el propio localhost. Además, los archivos de esos proyectos se servirán desde carpetas externas, algo que es útil por diversos motivos que explicaremos a continuación.

Cuando trabajamos con proyectos web en un servidor Apache para desarrollo, instalado de manera local en nuestra máquina, existe una carpeta por defecto en la que se colocan los documentos que debe servir Apache al navegador. Esta carpeta es www o htdocs y se conoce normamente con el nombre de carpeta de publicación. Sin embargo, no es la única manera en la que podemos trabajar con nuestros proyectos y aprovechar las características de utilizar un servidor local.

Existen muchas razones por las que nos puede interesar trabajar en una carpeta externa a la de publicación. Entre los motivos podemos destacar varios. Por ejemplo, facilitar el proceso de copias de seguridad, al trabajar en una ubicación en la que existen más carpetas de las que solemos hacer copias. O tener los proyectos más "a salvo", en caso de que se hiciese necesaria algún tipo de reinstalación. Incluso puede darse el caso de que estemos trabajando en una máquina Linux en la que trabaja más de un desarrollador pero no todos deben tener acceso para abrir y escribir archivos y carpetas a una zona tan delicada del sistema, que pertenece al administrador.

Si por cualquier motivo deseas saber cómo configurar cualquier carpeta de tu sistema como directorio desde donde se sirvan documentos web, ahora te explicaremos cómo conseguirlo. Para ello vamos a seguir el proceso de configuración de nuestro servido Apache, paso a paso, para poder trabajar con esta otra metodología.

Creando el espacio de trabajo en una carpeta distinta a la de publicación

Aclarar primero que las indicaciones que voy a dar están referenciadas a una máquina con Linux, Ubuntu concretamente. Sin embargo el proceso es bastante parecido en otros sistemas y la explicación opino es suficientemente clara para poder intentarlo también.

Lo primero que vamos a hacer, suponiendo que el sitio web que vamos a llevar a cabo fuese desarrolloweb.com, es crear en nuestra carpeta personal -home/tu_nombre_usuario- un directorio en el que ubicaremos todos los archivos a publicar. En nuestro caso para que todo sea más ordenado, crearemos primero una carpeta en la que estarán todos los diferentes proyectos a la que llamaremos “proyectos”. Para ello abrimos un terminal o consola y escribimos el siguiente comando:

$ mkdir proyectos

Nota: Al abrir el terminal de comandos ya nos sitúa directamente dentro de la carpeta home de nuestro usuario, por eso podemos hacer el mkdir proyectos directamente. Si nuestro usuario se llamase "pablo", la ruta sería /home/pablo. Si queréis comprobar en cualquier momento cuál es la carpeta donde os encontráis podéis escribir el comando:

$ pwd

A continuación entramos dentro de proyectos y creamos la carpeta para nuestro proyecto desarrolloweb.com:

$ cd proyectos
$ mkdir desarrolloweb

Ahora que tenemos nuestra carpeta creada, deberíamos modificar los permisos de lectura y escritura para que Apache pueda leer en ella. En nuestro caso, vamos a conceder permisos totales a todos los usuarios para ambas carpetas, algo que solo haremos porque es un servidor para desarrollo y porque trabajamos de manera local en nuestra propia máquina:

$ chmod 777 proyectos
$ cd proyectos
$ chmod 777 desarrolloweb

Habilitando y configurando nuestro sitio en Apache

A continuación nos disponemos a configurar las directrices por las que el servidor se guiará para servir esta página. Entramos en la carpeta /etc escribiendo:

$ cd /etc

En esta carpeta encontramos el archivo hosts, que indica al ordenador la relación existente entre dominios de Internet y direcciones IP. Con el editor que queramos, en mi caso vim, editaremos este archivo para decirle al ordenador que la dirección desarrolloweb.com la busque en nuestro servidor localhost y no en la IP real del dominio.

Nota: Cuando queramos acceder a la dirección real de la página, simplemente comentaremos esta linea con almohadilla # . Otra manera es configurar en local desarrolloweb.com (sin www) y dejar la dirección completa libre para el acceso a la página en su servidor real.

Para esta configuración ejecutamos el editor elegido ( en mi caso vim, pero si lo deseas puedes ver otras alternativas a Vi) desde /etc escribiendo:

$ sudo vim hosts

Nota: Hemos ejecutado como superusuario, gracias al comando sudo, porque al no tratarse de un archivo que esté dentro de nuestra /home, necesitamos permisos de administrador.

En el archivo incluimos una linea en la que asociamos nuestra IP de localhost (servidor local) a la dirección ip de nuestro Apache, que es 127.0.0.1

127.0.0.1      desarrolloweb.com.local

Salvamos y comprobamos haciendo ping a desarrolloweb.com y vemos que nos devuelve la IP de nuestro servidor local. Recuerda que para eliminar este comportamiento simplemente comentamos la linea del archivo hosts con #.

El siguiente paso es definir la ruta en la que se encuentra el contenido que se quiere asociar al dominio. Entramos en la carpeta de apache:

$ cd apache2

Accedemos ahora a la carpeta sites-available, donde se encuentran las configuraciones para los diferentes dominios que contiene el servidor. Si no hemos definido ninguno, tendremos solo un archivo default y un default-ssl. Nosotros vamos a usar el default como base de configuración así que lo copiamos renombrándolo además con el nombre de nuestro dominio. Realicemos ambos pasos.

$ cd sites-available
$ sudo cp default desarrolloweb.com.local

A continuación editamos el archivo:

$ sudo vim desarrolloweb.com.local

En el archivo que se abre, podríamos configurar muchísimos parámetros, pero vamos a tocar solo los mínimos necesarios que corresponden a este tutorial. En la linea número tres, debajo de ServerAdmin, escribiremos el nombre del servidor incluyendo la siguiente linea:

ServerName desarrolloweb.com.local

Y bajo esta linea sustituiremos /var/www por la carpeta de publicación a asignar, en nuestro caso la linea quedará así:

DocumentRoot /home/nombredelusuario/proyectos/desarrolloweb

A continuación sustituimos en la linea nueve la ruta, quedando la línea de la siguiente manera:

<Directory /home/nombredelusuario/proyectos/desarrolloweb/>

Nota: Podríamos configurar otras cosas como los logs, pero no procede en este tutorial.

Nuestro sitio está configurado, lo que tenemos que hacer ahora es activar nuestro sitio para su publicación en apache. Para ello, desde la misma carpeta, ejecutaremos un comando propio de apache:

$ sudo a2ensite desarrolloweb.com.local

Y si todo ha ido bien nos solicitará recargar apache, lo que podemos hacer escribiendo:

$ sudo service apache2 reload

Una vez ha recargado Apache, solo nos queda abrir el navegador y escribir la dirección sin www y comprobar cómo lo que se nos muestra es el contenido de nuestra carpeta local. Ahora podremos llevar a cabo todo nuestro proyecto en una carpeta situada en nuestra carpeta personal y además comprobarlo en el navegador desde la misma dirección que tendrá en Internet.

Conclusión

Lo único que debemos recordar es que para acceder a la dirección remota, debemos escribir la dirección completa www.desarrolloweb.com o comentar la línea que pusimos en nuestro archivo hosts.

Pablo Bernardo

Front-end (HTML5, CSS3 y algo de jQuery) , algo de back-end (en PHP) y programa...

Manual