Mostrando entradas con la etiqueta trabajo. Mostrar todas las entradas
Mostrando entradas con la etiqueta trabajo. Mostrar todas las entradas

martes, noviembre 23, 2010

Cómo configurar varios proyectos Symfony en un mismo servidor

Éste truco no es mío, está sacado de http://trac.symfony-project.org/wiki/HowtoMultipleSFProjectsLocal, es la solución más elegante que he encontrado y que me ha funcionado. Sirve tanto para sistemas Windows como Linux, yo uso XAMPP para Windows (en el trabajo) y Symfony 1.4 así que las rutas y archivos están referidas a él.
El truco está en usar las direcciones 127.0.0.X para tus proyectos, con lo que en principio está limitado a 254 pero no creo que os juntéis con tantos proyectos... si fuera así se puede usar también las direcciones 127.0.X.X, bueno vamos al lío.

Tenemos que configurar un servidor virtual por cada proyecto que tengamos en httpd.conf (c:\xampp\apache\conf\httpd.conf), en el caso de XAMPP lo suyo es hacerlo en c:\xampp\apache\conf\extra\httpd-vhosts.conf, por ejemplo:

<VirtualHost 127.0.0.2:80>
  ServerName proyecto1
  DocumentRoot "c:\xampp\htdocs\proyecto1\web"
  DirectoryIndex index.php
  <Directory "c:\xampp\htdocs\proyecto1\web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf c:\xampp\htdocs\proyecto1\lib\vendor\symfony\data\web\sf
  <Directory "c:\xampp\htdocs\proyecto1\lib\vendor\symfony\data\web\sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

<VirtualHost 127.0.0.3:80>
  ServerName proyecto2
  DocumentRoot "c:\xampp\htdocs\proyecto2\web"
  DirectoryIndex index.php
  <Directory "c:\xampp\htdocs\proyecto2\web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf c:\xampp\htdocs\proyecto2\lib\vendor\symfony\data\web\sf
  <Directory "c:\xampp\htdocs\proyecto2\lib\vendor\symfony\data\web\sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

Después de esto hay que ir al archivos de hosts (c:\windows\system32\drivers\etc\hosts en Windows y /etc/hosts en Linux) y editarlo para que aparezca lo siguiente:
127.0.0.1 localhost
127.0.0.2 proyecto1
127.0.0.3 proyecto2

Una vez hecho esto para acceder a los proyectos que no están hechos con symfony pues solo hay que ir a http://localhost/paginadepruebas y para los de symfony ir a http://proyecto1 o http://proyecto2.

En el manual que he enlazado al principio existe un método para hacer la configuración de los virtual hosts dinámica pero sigue haciendo falta hacer la de los hosts a mano.

sábado, noviembre 13, 2010

Control de versiones en Windows

En mi proyecto actual estoy haciendo yo solito el programa y en principio no parece necesario tener un control de versiones pero todos los días tengo que llevarme el portátil a casa y eso incrementa la probabilidad de perder todo el trabajo, no voy a dejar que eso ocurra.

¿Cómo soluciono el problema de guardarme una copia de seguridad diaria? ¿comprimiendo todo y enviándomelo al correo? eso es tedioso y se me va a olvidar, hay más opciones pero la que más me gustó es ésta:
Usar un control de versiones. Subversion está bien, funciona correctamente, lo conozco y es muy usado en la industria, genial [1].
¿Cómo tener una copia de seguridad de los archivos de Subversion? usando Dropbox [2], he configurado VisualSVN Server para que el directorio donde guarda los archivos sea uno dentro de la carpeta de Dropbox así que ya tengo solucionada el tema de la copia de seguridad, además esto me permite tener siempre el proyecto actualizado sin importar el ordenador en el que esté trabajando.

Inconvenientes:
  • Para hacer un commit hay que cerrar Dropbox porque si no bloquea ciertos archivos que el servidor de Subversion necesita ir modificando y ... en fin que es incompatible.
  • Para hacer un checkout o un update de un proyecto es necesario tener instalado VisualSVN Server en el ordenador. Si usas Linux sé que se puede exportar/importar proyectos entre VisualSVN Server y el servidor Subversion de Linux.

[1] Para Windows solo he encontrado una opción, gracias a "Sudor", y es VisualSVN Server, si por mí fuera lo tendría alojado en algún servicio web pero la verdad es que no he encontrado uno gratis que me permita tener proyectos privados y me convenza (tampoco he buscado muchísimo), hasta pagué un tiempo por un servicio de pago cuyo nombre no consigo recordar pero era muy lento así que lo dejé pasar.

[2] Si alguien se va a hacer una cuenta de Dropbox que me lo diga y le envío una invitación, la cual no es necesaria para registrarse pero a mí me regalan espacio extra.