2010-09-12 19 views

Respuesta

4

No, parece que no hay una forma directa de hacerlo.

Lo único que podría ser ser una solución es la directiva IfDefine. Puede definir define utilizando el parámetro -d cuando se inicia el servidor.

El argumento del nombre del parámetro es una definición como se da en la línea de comandos de httpd a través de -Dparameter-, en el momento en que se inició el servidor.

Es posible que pueda comprobar la existencia de un directorio en un archivo por lotes o bash, y establecer el parámetro -d en consecuencia.

Si se trata de una opción, dependerá de cómo se inicia el servidor desde el disco duro portátil.

3

He encontrado una solución que parece funcionar para Linux y OS X, y depende de "puntos de montaje". También es posible emularlo dentro de Windows, pero probablemente tendrías que ser creativo con FUSE y/o Cygwin.

Si crea una carpeta vacía en su directorio de inicio, como "/ Users/username/ExtraVhosts", puede agregar una directiva apache a "Include/Users/username/ExtraVhosts/*".

Luego, cuando inserte su memoria USB, puede montarla en algún lugar y luego usar "vinculación" de punto de montaje para vincular la carpeta ExtraVhosts a una carpeta en el dispositivo móvil.

Un OS X ejemplo:

  • Tengo un pulgar unidad llamada 'Cherrybomb'
  • Cuando lo inserte, siempre se monta en/Volumes/Cherrybomb
  • entonces puedo usar bindfs (sudo port instalar bindfs) para montar una subcarpeta de la misma, así:
    • sudo bindfs/Volumes/Cherrybomb/Proyectos/vhosts/Users/username/ExtraVhosts
  • Entonces puede reiniciar apache para leer en la configuración actualizada:
    • sudo/opt/local/apache2/bin/apachectl reiniciar

En ese momento, es sólo una cuestión de agregar entradas en/etc/hosts para que los alias del servidor sean recogidos.

El equivalente de Linux estaría utilizando el parámetro "--bind" del comando mount.

Una advertencia: Esto hace que sea difícil desmontar rápidamente la unidad USB, ya que siempre está marcada como "en uso" por apache.He aquí un procedimiento de extracción:

  • Cierre todos los archivos abiertos y sesiones de terminales que utilizan la unidad (el actual trabajo-directorio en el terminal puede causar problemas de desmontar)
  • Parar Apache: sudo/opt/local/apache2/bin/apachectl detener
  • desmontar/Users/username/ExtraVhosts

entonces se puede desmontar o bien gráficamente o manualmente (umount/Volumes/Cherrybomb).

Si las máquinas de su trabajo y del hogar montan la unidad en diferentes ubicaciones, puede tener varias carpetas de fantasmas - home_vhost, work_vhost, etc. - y usar eso en el paso de enlace.

espero que esto ayude a alguien por :)

0

Si Apache Point al punto de montaje única no debería ser un problema. Simplemente no apunte Directivas de directorio a directorios dentro de la unidad.

por ejemplo, si monta/dev/somedisk/mnt/somevhost, el directorio /mnt/somevhost estará allí aunque no tenga la unidad montada y apache se iniciará. A Apache no le importa si el directorio está vacío, por lo que <Directory "/mnt/somevhost"/> no provocará que el servidor no se inicie si el disco no está montado.

Trabajo con UNIX no está en contra: esta solución debe ser suficiente para el desarrollo.

Cuestiones relacionadas