如何授予PHP exec()读/写权限

如何授予PHP exec()读/写权限,php,exec,Php,Exec,我无法让exec()读取或写入我需要的内容: exec(“php-f/root/script/screenshot.php”) 失败,无法打开输入文件。一定是权限问题。但是,将文件所有者更改为php用户并没有解决这个问题 也无法使其工作: exec(“xvfb run-a cutycapt--min-width=1920--min-height=1920--url='{$url}'--out='{$path}'” 失败,但未给出任何错误消息。cutycapt是一款截图应用程序,用于拍摄网站的截图

我无法让exec()读取或写入我需要的内容:

exec(“php-f/root/script/screenshot.php”)

失败,
无法打开输入文件
。一定是权限问题。但是,将文件所有者更改为php用户并没有解决这个问题

也无法使其工作:

exec(“xvfb run-a cutycapt--min-width=1920--min-height=1920--url='{$url}'--out='{$path}'”

失败,但未给出任何错误消息。cutycapt是一款截图应用程序,用于拍摄网站的截图


这两个命令都可以在命令行中完美地工作。但是php exec()似乎既不会读取也不会写入文件…

观察您的文件夹路径是否在sudoers文件中

发现这确实是一个权限错误。第二个命令不起作用,因为该文件夹没有apache用户的写入权限

exec(“xvfb run-a cutycapt--min-width=1920--min-height=1920--url='{$url}'--out='{$path}'”


更改了权限,现在上面的命令正在保存屏幕截图,一点问题也没有。

我们谈论的是命令行PHP还是涉及web服务器的一些复杂设置?exec命令是由apache web服务器执行的PHP脚本。然后你就有了它。Apache通常以根用户身份启动(因此它可以绑定特权端口),然后以非特权用户身份分叉(以减少潜在风险,成为一个向世界开放的服务)。不,不在sudoers文件中。然后在sudoers文件中采用该路径,它将工作。我在哪里可以看到并获得exe的所有权限以及它们的含义??因为我也需要运行一个exec