我在虚拟驱动器中安装了 XAMPP,现在我无法运行它的服务。为啥?
Posted
技术标签:
【中文标题】我在虚拟驱动器中安装了 XAMPP,现在我无法运行它的服务。为啥?【英文标题】:I installed XAMPP in a virtual drive and now I can't run its services. Why?我在虚拟驱动器中安装了 XAMPP,现在我无法运行它的服务。为什么? 【发布时间】:2011-02-27 03:30:06 【问题描述】:描述很长。请花一些时间阅读它。 ^:)^
我有一个旧的 php 应用程序,我正在尝试对其进行测试和调试。不幸的是,该应用程序使用了重要数据,所以我不能只点击这个和那个。现在,我要做的是在另一台计算机上创建应用程序的副本。从现在开始,我将运行我的原始 PHP 应用程序的计算机称为“计算机 A”,并将用于运行应用程序副本的计算机称为“计算机 B”。
为了防止丢失链接问题,因为应用程序包含静态路径,例如图像或标签,我必须将与我的 PHP 应用程序相关的所有文件和文件夹从计算机 A 复制到计算机 B 中的相同路径。不幸的是,仅计算机 B有驱动器 C,而计算机 A 有驱动器 D,我的 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 或进程。我该怎么办?请帮帮我。
非常感谢,
哈里斯
【问题讨论】:
您在 serverfault.com 上问这个问题可能会更幸运 【参考方案1】:我希望这不构成交叉发布,这里是...
Subst 不会在全局范围内或在系统用户/NT 权限内实例化挂载,因此服务器 (apache) 无法访问它。 Apache通过系统账号访问,所以看不到subst mount point(所谓的)。
由此而来:http://msdn.microsoft.com/en-us/library/aa363908%28v=VS.85%29.aspx ...看来您可以通过 win api 或可能直接在注册表中使用 DefineDosDevice 函数或方法来全局实例化 subst。
您尝试执行 subst 的任何方式,即使使用诸如 RunAsSystem 之类的东西来尝试在系统用户上下文中应用 subst 命令,都将无法产生可行的结果。
但是,我发现通过在注册表中创建 DosDevice,我有一个可行的“替代”挂载,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) 这个字符串的值是 "\??\C:\PortableUSB" (不带引号。当然使用你自己的路径)
需要重新启动。 subst 是持久的并且在全球范围内可用。我还不知道它有多可靠,但到目前为止我正在成功使用它。 双鹰
【讨论】:
以上是关于我在虚拟驱动器中安装了 XAMPP,现在我无法运行它的服务。为啥?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 php (Xampp) 连接我的 Microsoft 访问数据库文件