【问题标题】:realpath() returning false on existing files on Mac OS X XAMPP serverrealpath() 在 Mac OS X XAMPP 服务器上的现有文件上返回 false
【发布时间】:2012-04-04 04:28:40
【问题描述】:

基本上,我有一个在 OS X 机器上看不到现有目录的脚本。该目录已从外部硬盘驱动器复制到桌面上,我认为这可能是问题的核心。

    $path = '/Users/username/Desktop/testfolder';
    $path = realpath($path);

上面的这个不起作用。

    $path = '/Users/username/Desktop';
    $path = realpath($path);

上面的工作正常。

我会给你一些情况的背景。我正在运行 Mac OS X Lion 10.7。我已经安装了 XAMPP。这是一个信息亭 iMac,需要与同一网络上的 iPad 通信,否则我不会在 OS X 上运行 apache。iPad 需要从 iMac 检索一些图像,而 PHP 基本上用作代理去做这个。我创建了一个后端,让管理员可以设置图像的路径,这就是发生此错误的地方。

所以,我不确定发生了什么。我想这与外部硬盘驱动器中这些文件的权限和所有者的某些冲突有关。我确信我们可以在终端中执行“chown”或“chmod”,但这并不是一个很好的解决方案。我喜欢让 PHP 适应这样的场景。有什么想法吗?请!? :-)

【问题讨论】:

  • The manual 确实声明了The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE. - 如果这不是真的(我怀疑不是,听起来你对testfolder 没有执行权限)然后 唯一的解决方案是chmod/chown/chgrp。这可能不是一个很好的解决方案,但你只需要学会喜欢它......
  • 由于梯形路径有效,它显然对桌面具有权限,而不是在测试文件夹上。因此,知道了这一点,我尝试在机器上本地创建第二个名为“testfolder2”的目录,并将图像从 testfolder 复制到 testfolder2,但我收到了同样的问题。 realpath 在新文件夹上返回 false。有什么想法吗?
  • 如果 PHP 脚本在 testfoldertestfolder2 上没有 exec,它将无法工作。尝试chmod 777ing 文件夹,看看是否还有问题...

标签: php macos xampp


【解决方案1】:

有点奇怪的问题,但尽管这样可行:

$path = '/Users/username/Desktop';
$path = realpath($path);

“桌面”目录没有正确的权限。一旦我更改了桌面上的权限,它就允许我访问此路径:

$path = '/Users/username/Desktop/testfolder';
$path = realpath($path);

manual 确实声明了 The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.,这似乎确实是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-21
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多