【问题标题】:php mkdir works when called from command line, but not from apache (Windows)php mkdir 从命令行调用时有效,但从 apache (Windows) 调用时无效
【发布时间】:2012-12-17 22:36:26
【问题描述】:

我已将我的问题缩小到以下情况。

我有一个简单的文件'test.php'

<?php
mkdir("w:/Input/47/");
?>

当我从命令行(php -f test.php)运行它时,它成功创建了目录。

当我通过 Windows 版本的 Apache 运行它时,我得到:

[17-Dec-2012 16:29:49] PHP Warning:  mkdir(): No such file or directory in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ReportComp\test.php on line 2

我在 Windows 7(64 位)中运行 Apache 2.2(64 位)作为我的域用户名(与我登录桌面的用户名相同)

“w”驱动器是一个(我相信)也在运行 Windows 的网络驱动器。

有什么想法吗?

【问题讨论】:

  • apache以什么用户运行?也许 apache 没有 w: 驱动器的写权限? p.s.当您在控制台中运行时,您可能以 root 身份运行?
  • 你能以 apache 用户身份登录并再次尝试从命令行执行文件吗?驱动器 w:/ 是否可供 apache 用户使用? AFAIK Windows newtwork 文件夹可以安装在每个用户或每个系统策略上
  • 我正在以与登录桌面相同的用户身份运行 apache。

标签: php apache windows-7 apache2.2


【解决方案1】:

Windows 使用 '\' 作为目录分隔符 .. 这可能会导致我建议您使用 'DIRECTORY_SEPARATOR' 的问题

【讨论】:

  • 不幸的是,这并不能解释为什么这可以从命令行而不是 apache 工作。但是,我尝试过使用'/'和'\\',无论是否带有斜杠。我有一个限制,即用于创建文件夹的相同路径被不喜欢 UNC 的第 3 方应用程序使用。
猜你喜欢
  • 2012-10-12
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多