2010-09-12 3 views

Répondre

4

Non, il semble n'y avoir aucun moyen direct de le faire. La seule chose que pourrait être une solution est la directive IfDefine. Vous pouvez définir des définitions en utilisant le paramètre -d pour le démarrage du serveur. L'argument nom-paramètre est défini comme défini sur la ligne de commande httpd via -Dparameter-, au moment du démarrage du serveur. Vous pouvez vérifier l'existence d'un répertoire dans un fichier batch ou bash et définir le paramètre -d en conséquence.

Cette option dépend de la façon dont votre serveur est démarré à partir du disque dur portable.

3

Je suis venu avec une solution qui semble fonctionner pour Linux et OS X, et cela dépend de "points de montage". Il serait peut-être possible de l'émuler dans Windows, mais vous devrez probablement faire preuve de créativité avec FUSE et/ou Cygwin. Si vous créez un dossier vide dans votre répertoire personnel, tel que "/ Users/nom_utilisateur/ExtraVhosts", vous pouvez ajouter une directive apache à "Include/Users/nom_utilisateur/ExtraVhosts/*".

Ensuite, lorsque vous insérez votre clé USB, vous pouvez monter quelque part, puis utiliser la liaison de point de montage pour relier le dossier ExtraVhosts à un dossier sur le périphérique mobile.

Un OS exemple X:

  • J'ai une clé appelé 'Cherrybomb'
  • Quand je l'insère, il obtient toujours monté sur/Volumes/Cherrybomb
  • Je peux alors utiliser bindfs (sudo port installer bindfs) pour monter un sous-dossier de celui-ci, comme ceci:
    • sudo bindfs/Volumes/Cherrybomb/Projets/vhosts/utilisateurs/nom d'utilisateur/ExtraVhosts
  • Ensuite, je peux redémarrer apache pour lire dans la configuration mise à jour:
    • sudo/opt/local/apache2/bin/apachectl restart

À ce moment-là, il est juste une question d'ajouter des entrées dans/etc/hosts pour que les alias de serveur soient récupérés.

L'équivalent linux utiliserait le paramètre "--bind" de la commande mount. Un inconvénient: Cela rend difficile de démonter rapidement le lecteur USB, car il est toujours marqué comme "en cours d'utilisation" par Apache.Voici une procédure de retrait:

  • Fermez tous les fichiers ouverts et les sessions Terminal qui utilisent le lecteur (l'actuel travail-répertoire dans le terminal peut causer des problèmes de démontage)
  • Arrêt apache: sudo/opt/local/apache2/bin/apachectl stop
  • umount/utilisateurs/nom d'utilisateur/ExtraVhosts

Ensuite, vous pouvez soit le démonter graphiquement ou manuellement (umount/volumes/Cherrybomb). Si votre ordinateur de bureau et votre ordinateur personnel installent le lecteur à différents emplacements, vous pouvez avoir plusieurs dossiers vhosts - home_vhost, work_vhost, etc - et l'utiliser dans l'étape de liaison.

J'espère que cela aide quelqu'un :)

0

Si vous pointez apache au point de montage que il ne devrait pas être un problème. Il ne suffit pas de pointer les directives Directory vers les répertoires du disque. Par exemple, si vous montez/dev/somedisk/mnt/somevhost, le répertoire /mnt/somevhost sera disponible, que le lecteur soit monté ou non et qu'apache démarre. Apache ne se soucie pas si le répertoire est vide, donc un <Directory "/mnt/somevhost"/> ne provoquera pas le démarrage du serveur si le disque n'est pas monté.

Travail avec UNIX pas contre: -p Cette solution devrait être suffisante pour le développement.

Questions connexes