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.
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
$ 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.
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
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/>
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...