PHP执行查找不工作


PHP exec find doesnt work

我试图用php递归chmod所有目录,并使用:

find /path/to/dir -type d -exec chmod 777 {} ';

在命令行中工作得很好,但是在服务器中使用它:

exec('find /path/to/dir -type d -exec chmod 777 {} ';');

什么也不做。什么好主意吗?是否与许可有关?路径为实路径服务器级别

当您在命令行上运行它时,您是作为您的用户(可能是路径的所有者)运行它。当您从PHP执行()时,执行该操作的是Apache用户。只有文件/dir的所有者可以chmod它。要确认这一点,请尝试从PHP CLI交互式Shell运行exec()脚本。在交互式Shell中,您可以运行PHP代码,但它将以您的用户身份执行。

如果这是原因,您必须首先选择目录和它的子文件/dirs由Apache用户拥有。