Transportar y ejecutar proyectos Web en un pendrive usando los VirtualHost de Apache con Ubuntu

Actualizado el 4 Julio, 2010

Si eres de los que trabaja indistintamente en varios equipos (sobremesa, portátil, etc…) te habrás encontrado en bastantes ocasiones con la necesidad de copiar todo el trabajo hecho desde el disco duro de un equipo a un pendrive y volver a volcarlo en el disco duro de otro equipo. Si no lo tienes que hacer muy a menudo no hay ningún problema, pero si es una tarea diaria se puede convertir en un fastidio, sobretodo cuando empiezas a no tener claro si la última versión de tu proyecto la tienes en el portátil, en el PC de sobremesa, o en aquel pendrive de color amarillo. O era el rojo?

Para evitar esto lo ideal es tener el código centralizado. Una opción sería trabajar directamente con el código “on-line”. Muchos entornos de desarrollo permiten añadir cuentas de FTP a su explorador, de manera que podrías abrir y editar los archivos directamente en tu servidor. En mi opinión esta opción no es nada recomendable, pero se puede usar en casos muy puntuales.

Otra forma de hacerlo es teniendo nuestros archivos en un pendrive y trabajando directamente sobre ellos. Es la opción que estoy usando últimamente y funciona bastante bien gracias a los VirtualHost de Apache. Tiene alguna desventaja, como por ejemplo si trabajas con bases de datos tendrás que tenerla instalada localmente en cada equipo y no en el pendrive. Algo que tampoco he conseguido es que la web se pueda ejecutar indistamente en equipos que utilicen diferente S.O, por ejemplo Ubuntu y Windows. Por temas de permisos será necesario formatear el pendrive con un sistema de archivos adecuado a nuestro S.O. haciéndolo, en algunos casos, inutilizable en otro S.O.

Instrucciones para Ubuntu

a) Lo primero que haremos será formatear un pendrive desde Sistema -> Administración -> Utilidad de discos con el sistema de archivos Ext4 y el tipo de partición Linux (0×83). También le pondremos una etiqueta al volumen, por ejemplo proyectos.

b) Para crear el virtual host para nuestro dominio ejemplo.com abrimos un terminal desde Aplicaciones -> Accesorios -> Terminal y tecleamos en la consola

cd /etc/apache2/sites-available

c) Copiamos el esquema por defecto

sudo cp default ejemplo.com

d) Editamos el esquema recién creado

sudo gedit ejemplo.com

Debería quedarnos algo parecido a esto

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName ejemplo.com

	DocumentRoot /media/proyectos/www/ejemplo
	<Directory />
		Options FollowSymLinks
		AllowOverride All
	</Directory>
	<Directory /media/proyectos/www/ejemplo >
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /javascript /media/proyectos/www/ejemplo/javascript
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

e) Guardamos el archivo y activamos el nuevo host virtual

sudo a2ensite ejemplo.com

f) Editamos el archivo /etc/hosts

sudo gedit /etc/hosts

y añadimos la entrada de nuestro dominio

127.0.0.1 ejemplo.com

g) Reiniciamos el servidor Apache

sudo /etc/init.d/apache2 restart

h) Insertamos el pendrive y le damos los permisos adecuados para poder acceder a nuestro proyecto web desde el navegador

cd /media
chmod 755 proyectos

i) Creamos los directorios necesarios en el pendrive

cd proyectos
mkdir www
cd www
mkdir ejemplo

j) Ya podemos crear nuestro proyecto ejemplo.com, guardarlo en /media/proyectos/www/ejemplo y visualizarlo con el navegador entrando en http://ejemplo.com

Espero que te sea de utilidad. Próximamente publicaré las instrucciones para Windows.

Dejar una Respuesta