2010-06-03 2 views
1

La description est assez longue. S'il vous plaît prenez le temps de le lire. ^:)^J'ai installé XAMPP dans un lecteur virtuel et maintenant je ne peux pas exécuter ses services. Pourquoi?

J'ai une ancienne application PHP et j'essaye de la tester et de la déboguer. Malheureusement, l'application utilise des données importantes, donc je ne peux pas cliquer sur ceci et cela. Maintenant, ce que j'essaye de faire est de créer une copie de l'application dans un autre ordinateur. A partir de maintenant, j'appellerai l'ordinateur exécutant mon application PHP originale comme 'Ordinateur A' et l'ordinateur que je vais utiliser pour exécuter la copie de l'application comme 'Ordinateur B'. Pour éviter les problèmes de liens manquants puisque l'application contient des chemins statiques, tels que des images ou des tags, je dois copier tous les fichiers et dossiers liés à mon application PHP de l'ordinateur A vers le même chemin dans l'ordinateur B. Malheureusement, l'ordinateur B seulement a le lecteur C tandis que l'ordinateur A a le lecteur D et les fichiers de mon application PHP se trouve dans 'D: \ xampp \ htdocs' dans l'ordinateur A.

OK, maintenant je dois créer le lecteur D dans l'ordinateur B. d'abord, j'ai essayé de créer une deuxième partition dans l'ordinateur B en utilisant PowerQuest Partition Magic 8, mais en quelque sorte Partition Magic ne fonctionne pas dans l'ordinateur B. J'ai essayé de le réinstaller mais il ne fonctionne toujours pas. Donc, une autre alternative est de créer un lecteur virtuel. C'est ce que j'ai fait. J'ai créé un lecteur virtuel en exécutant la commande 'subst' dans l'invite de commande. Le lecteur virtuel est D et il fait référence à un répertoire, qui est 'C: \ Virtual'.

Après avoir le lecteur D dans l'ordinateur B, j'y ai installé XAMPP. L'installation a été réussie. Maintenant, j'ai aussi 'D: \ xampp \ htdocs' dans l'ordinateur B. Cependant, lorsque j'ai exécuté le service Apache, MySQL ou Filezilla, je reçois un message d'erreur "Erreur 3: Le système ne trouve pas le fichier spécifié." Dans l'ordinateur B, il n'y a pas d'IIS ou de processus utilisant le port 80. Que dois-je faire? Aidez-moi, s'il vous plaît.

Un grand merci à l'avance,

Haris

+0

Vous auriez peut-être plus de chance en posant cette question sur serverfault.com – JochenJung

Répondre

1

J'espère que cela ne constitue pas le cross-posting, ici va ...

Subst n'instancier pas un support au niveau mondial, ou dans le System User/NT Authority, de sorte que le serveur (apache) ne peut pas y accéder. Apache accède via le compte système, et donc il ne peut pas voir un point de montage de subst (soi-disant). Suite à ceci: http://msdn.microsoft.com/en-us/library/aa363908%28v=VS.85%29.aspx ... il semble que vous pouvez instancier un subst globalement via le win api ou éventuellement directement dans le registre en utilisant la fonction ou la méthode DefineDosDevice.

N'importe quelle façon vous essayez de faire un subst, même en utilisant quelque chose comme RunAsSystem pour tenter d'appliquer la commande subst dans le contexte utilisateur du système, échouera à produire un résultat viable.

Cependant, j'ai trouvé qu'en créant le DosDevice dans le registre, j'ai un support 'subst' viable que apache/mysql/php-win peut utiliser. Vous pouvez également trouver des façons de le faire via wmi, vb, c +, etc, et je ne sais pas si (je doute) la méthode de registre est directement le même, mais ici il est ...

Exemple, je veux : S Subst: C: \ PortableUSB

fichier asA.reg ...

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"S:"="\\??\\C:\\PortableUSB" 

Ou, dans le registre, il ressemblera à ceci (vous pouvez l'ajouter manuellement cette façon) ... Un nom de chaîne de "S:" (sans les guillemets.Utilisez votre DriveLetter préféré, bien sûr) La valeur de cette chaîne est "\ ?? \ C: \ PortableUSB" (sans les guillemets Utilisez votre propre chemin, bien sûr)

Nécessite un redémarrage. Le subst est persistant et disponible globalement. Je ne sais pas encore à quel point c'est fiable, mais je l'utilise avec succès jusqu'ici. TwoHawks

Questions connexes