【问题标题】:Does the root filesystem exist in Windows, especially in Windows 10?Windows 中是否存在根文件系统,尤其是在 Windows 10 中?
【发布时间】:2019-05-02 07:45:01
【问题描述】:

我正在使用运行 Windows 10 Home Single Language 64 位操作系统的笔记本电脑

我已经在这台笔记本电脑上安装了最新版本的 XAMPP 预配置安装程序。

这已经在我的笔记本电脑上安装了 PHP 7.2.12Apache/2.4.37 (Win32)

我从PHP Manual 看到以下注释:

注意:

Apache Web 服务器在启动时将目录更改为 root, 导致 PHP 尝试从根文件系统读取 php.ini 存在。

这篇笔记在我心中产生了几个疑问,如下所示:

  1. Windows 中是否存在根文件系统,尤其是在我目前在笔记本电脑上使用的 Windows 10 中?如果确实存在,那么 Windows 中的哪个目录充当根目录?
  2. 如果它不存在,那么 Apache Web 服务器在启动时会更改到哪个目录以使 PHP 尝试读取 php.ini?

我希望有人能用一些简单明了的语言解释我的上述疑问,并且对我来说应该很容易理解。

谢谢。

【问题讨论】:

  • 不能肯定,但我希望在 Windows 上“root”将等同于安装它的挂载点的顶层?例如。 `C:`。如果我错了,我相信有人会纠正我:)
  • NT 是围绕对象组织的。有一个对象根目录,但它通常只在本机 API 中可用,在 Windows API 中不可用。设备通常位于“\Device”中,并通过“\??”中的符号链接访问,“\Global??”的联合和“\Sessions\0\DosDevices\[Logon Session ID]”(即本地设备链接到呼叫者的登录会话)。对象管理器解析到具有解析方法的第一个组件的路径,例如 Device、Key 或 WindowStation。 I/O 管理器处理设备对象。它向设备或其管理文件系统设备发送IRP_MJ_CREATE 请求。

标签: php windows apache root php-ini


【解决方案1】:

*nix 系统上的“Root”指的是顶级文件夹。它看起来像这样:/

所以第一个问题的答案是:是的,根文件夹只是指安装操作系统的顶级文件夹,在默认的 Windows 设置中是 C:\ 文件夹。

第二个问题的答案比较棘手,因为我不确定 Apache 在 Windows 上的行为。您所关心的 PHP 手册页上的注释仅指 *nix 环境。这是 PHP 和 Apache 长期存在的问题,因为它们都是从 *nix 中“诞生”的,而这正是它们最擅长的地方。它们已被移植到 Windows,但作为事后的想法。如果您要进行大量 PHP 开发,我强烈建议您尽快获得 *nix 开发环境,因为您将不断遇到此类文档不适用于 Windows 用户的问题。

我相信 Windows 上的 Apache 默认会在 httpd.conf 中设置的 ServerRoot 文件夹中查找 php.ini 文件。 (如果我错了,有人纠正我!)但是如果你想把你的 php.ini 文件放在一个自定义的位置,你可以在 httpd.conf 中添加这样一行:

PHPIniDir "C:\php\ini"

【讨论】:

    【解决方案2】:

    系统的根目录是 C:/Windows。但这与读取 php.ini 无关,因为通常每次都正确读取所有配置文件(php、apache 和 mysql)。大多数情况下,我直接在 c:/ 中安装 xampp。 xampp 的路径将是c:/xampp,一切正常。

    我还手动单独安装了 apache、php 和 mysql,没有使用 wamp 或 xampp。这些将直接放在c:/ 下,因此路径将是c:/phpc:/Apache24(对于 Apache 2.4)和c:/mysql。所以没关系。

    【讨论】:

      猜你喜欢
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2016-03-22
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多