我在一个虚拟驱动器中安装了XAMPP,现在我无法运行它的服务。为什么?

时间:2010-06-03 04:33:39

标签: xampp

描述很长。请花点时间阅读。 ^:)^

我有一个旧的PHP应用程序,我正在尝试测试和调试它。不幸的是,该应用程序使用重要数据,所以我不能只是点击这个和那个。现在,我要做的是在另一台计算机上创建应用程序的副本。从现在开始,我将把运行我原来的PHP应用程序的计算机称为“计算机A”,并将我用来运行应用程序副本的计算机称为“计算机B”。

为了防止链接问题丢失,因为应用程序包含静态路径,例如图像或标签,我必须将与我的PHP应用程序相关的所有文件和文件夹从计算机A复制到计算机B中的相同路径。不幸的是,仅限计算机B有计算机A有驱动器C,而我的PHP应用程序的文件位于计算机A的'D:\ xampp \ htdocs'。

好的,现在我必须在计算机B中创建驱动器D.首先,我尝试使用PowerQuest Partition Magic 8在计算机B中创建第二个分区,但不知何故,Partition Magic不能在计算机B中运行。我有试图重新安装它但它仍然没有运行。因此,另一种方法是创建虚拟驱动器。这就是我做的。我通过在命令提示符中运行'subst'命令创建了一个虚拟驱动器。虚拟驱动器为D,它指的是一个目录,即“C:\ Virtual”。

在计算机B中驱动D之后,我在那里安装了XAMPP。安装成功。现在,我在计算机B中也有'D:\ xampp \ htdocs'。但是,当我运行Apache,MySQL或Filezilla服务时,我收到一条错误消息“错误3:系统无法找到指定的文件。”。在计算机B中,没有使用端口80的IIS或进程。我该怎么办?请帮帮我。

非常感谢,

哈里斯

1 个答案:

答案 0 :(得分:1)

我希望这不构成交叉发布,这里就是......

Subst不会全局实例化挂载,也不会在系统用户/ NT Authority中实例化,因此服务器(apache)无法访问它。 Apache通过系统帐户访问,因此无法看到子安装点(所谓的)。

从此开始:http://msdn.microsoft.com/en-us/library/aa363908%28v=VS.85%29.aspx ...似乎你可以通过win api全局实例化一个subst,或者可能使用DefineDosDevice函数或方法直接在注册表中实例化。

任何尝试执行替换的方法,即使使用诸如RunAsSystem之类的东西来尝试在系统用户上下文中应用subst命令,也都无法产生可行的结果。

然而,我发现通过在注册表中创建DosDevice我有一个可行的'subst'挂载,apache / mysql / php-win可以使用。你也可以通过wmi,vb,c +等找到方法,我不知道(我怀疑)注册表方法是否直接相同,但这里是......

示例,我想要:subst S:C:\ PortableUSB

asA.reg文件......

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

或者,在注册表中它看起来像这样(所以你可以这样手动添加它)... 字符串名称“S:”(不带引号。当然,请使用您首选的DriveLetter) 这个String的值是“\ ?? \ C:\ PortableUSB”(没有引号。当然,使用你自己的路径)

需要重启。该子网是持久的,可在全球范围内使我还不知道它有多可靠,但到目前为止,我正在成功地使用它。 TwoHawks