有些命令使用PHP exec()运行,有些命令不使用';t、 如何避免/修复此问题? 服务器是CentOS,我没有根访问权限 我可以使用pngquant运行exec(),但不能使用ImageMagick的convert 尝试使用convert打开图像文件时,我会遇到“权限被拒绝”,但使用pngquant可以正常工作(请注意,这两个命令在同一文件夹中打开相同的图像文件,权限相同,用户相同,等等) 因为我没有根访问权限,所以我构建了ImageMagick并将其添加到路径中 从命令行convertworksperfect(用户有足够的权限读取/写入图像文件) PHP尝试以无人身份运行exec('convert…')或shell_-exec('convert…'),这意味着echo shell_-exec('whoami')返回“nobody”。与pngquant相同,但结果成功(没有“权限被拒绝”问题)

有些命令使用PHP exec()运行,有些命令不使用';t、 如何避免/修复此问题? 服务器是CentOS,我没有根访问权限 我可以使用pngquant运行exec(),但不能使用ImageMagick的convert 尝试使用convert打开图像文件时,我会遇到“权限被拒绝”,但使用pngquant可以正常工作(请注意,这两个命令在同一文件夹中打开相同的图像文件,权限相同,用户相同,等等) 因为我没有根访问权限,所以我构建了ImageMagick并将其添加到路径中 从命令行convertworksperfect(用户有足够的权限读取/写入图像文件) PHP尝试以无人身份运行exec('convert…')或shell_-exec('convert…'),这意味着echo shell_-exec('whoami')返回“nobody”。与pngquant相同,但结果成功(没有“权限被拒绝”问题),php,linux,Php,Linux,有什么线索吗 因为我没有根访问权限,所以我构建了ImageMagick并将其添加到 这条路 您创建的二进制文件的权限是什么?听起来您作为用户有权执行二进制文件。但是以无人身份运行的PHP没有执行权限。我打赌您对所创建内容的二进制权限类似于744,甚至可能是700?我建议对您创建的二进制文件使用chmod 755,然后再试一次。谢谢,我刚刚检查过,它们都是755。仅供参考,ImageMagick安装文档提供了一种在自定义路径中构建和安装程序的方法。如果您没有root访问权限,我就是这样安装Imag

有什么线索吗

因为我没有根访问权限,所以我构建了ImageMagick并将其添加到 这条路


您创建的二进制文件的权限是什么?听起来您作为用户有权执行二进制文件。但是以无人身份运行的PHP没有执行权限。我打赌您对所创建内容的二进制权限类似于
744
,甚至可能是
700
?我建议对您创建的二进制文件使用
chmod 755
,然后再试一次。

谢谢,我刚刚检查过,它们都是755。仅供参考,ImageMagick安装文档提供了一种在自定义路径中构建和安装程序的方法。如果您没有root访问权限,我就是这样安装ImageMagick的。另一个线索是:如果我用FTP上传图像,
convert
可以正常工作,但是如果我用HTML表单+PHP上传相同的图像,我在试图打开文件时会遇到同样的问题“权限被拒绝”。@aesede关于文件本身,上传时的权限是什么?上传时,无论是用FTP还是通过HTML表单,该文件具有644个权限。我看到的区别是,FTP用户/组是“myuser/myuser”,而使用HTML表单时是“nobody/nobody”(没什么奇怪的)@aesede实话实说,不清楚问题是什么。但我相信这是基于许可的。尽我所能帮助你!如果你觉得这个答案对你有帮助,请记得投票表决。如果这是帮助您解决问题的答案,请记住将其本身勾选出来。祝你好运非常感谢@JakeGould,我仍在努力,在使用
convert
之前,我会看看是否可以使用exec()更改文件的权限。也在考虑把我自己改成777,等着有人把我从这个世界上删除(?)。