【发布时间】: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 脚本在
testfolder或testfolder2上没有 exec,它将无法工作。尝试chmod 777ing 文件夹,看看是否还有问题...