我在虚拟驱动器中安装了XAMPP,现在我可以';我不能运行它的服务。为什么?

我在虚拟驱动器中安装了XAMPP,现在我可以';我不能运行它的服务。为什么?,xampp,Xampp,描述相当长。请花点时间阅读。^:)^ 我有一个旧的PHP应用程序,我正在尝试测试和调试它。不幸的是,应用程序使用了重要的数据,所以我不能只点击这个和那个。现在,我要做的是在另一台计算机上创建应用程序的副本。从现在起,我将运行我的原始PHP应用程序的计算机称为“计算机A”,将用于运行应用程序副本的计算机称为“计算机B” 由于应用程序包含静态路径(如图像或标记),为了防止丢失链接问题,我必须将与PHP应用程序相关的所有文件和文件夹从计算机A复制到计算机B中的同一路径。不幸的是,计算机B只有驱动器C,

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

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

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

好的,现在我必须在计算机B中创建驱动器D。首先,我尝试使用PowerQuest partition Magic 8在计算机B中创建第二个分区,但分区Magic无法在计算机B中运行。我尝试重新安装它,但它仍然无法运行。因此,另一种选择是创建虚拟驱动器。我就是这么做的。我通过在命令提示符下运行“subst”命令创建了一个虚拟驱动器。虚拟驱动器是D,它引用了一个目录,即“C:\virtual”

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

多谢各位


哈里斯

我希望这不会构成交叉发帖,接下来

Subst不会全局实例化装载,也不会在系统用户/NT权限内实例化装载,因此服务器(apache)无法访问它。Apache通过系统帐户进行访问,因此无法看到subst装入点(所谓的)

以下是: …您似乎可以通过win api全局实例化subst,也可以使用DefinedDevice函数或方法直接在注册表中实例化subst

任何尝试执行subst的方法,即使使用诸如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:”(不带引号。当然,请使用您首选的驱动器号) 此字符串的值为“\??\C:\PortableUSB”(不带引号。当然,请使用您自己的路径)

需要重新启动。subst是持久的,全局可用。我还不知道它有多可靠,但到目前为止,我正在成功地使用它。
TwoHawks

我希望这不会构成交叉发布,接下来

Subst不会全局实例化装载,也不会在系统用户/NT权限内实例化装载,因此服务器(apache)无法访问它。Apache通过系统帐户进行访问,因此无法看到subst装入点(所谓的)

以下是: …您似乎可以通过win api全局实例化subst,也可以使用DefinedDevice函数或方法直接在注册表中实例化subst

任何尝试执行subst的方法,即使使用诸如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:”(不带引号。当然,请使用您首选的驱动器号) 此字符串的值为“\??\C:\PortableUSB”(不带引号。当然,请使用您自己的路径)

需要重新启动。subst是持久的,全局可用。我还不知道它有多可靠,但到目前为止,我正在成功地使用它。
TwoHawks

你在serverfault.com上问这个问题可能会更幸运你在serverfault.com上问这个问题可能会更幸运