【发布时间】:2020-01-15 08:21:57
【问题描述】:
我编译了一个带有 1 个参数的 golang 二进制文件,生成一个 PDF 文件,然后将其上传到 AWS S3。该二进制文件在 shell 中完美运行,但是当尝试使用 PHP 的 shell_exec()、exec()、passthru() 和 service() 函数执行它时,它不会执行(没有错误消息或日志条目)。我什至尝试从 PHP 的 shell_exec 调用 shell 脚本 (.sh),它执行二进制文件(在 shell 中也可以正常工作),但无济于事。
权限很好,PHP 的shell_exec() 适用于所有其他实例。
【问题讨论】:
-
如果你没有看到错误信息,你怎么知道它没有执行?没有消息就是好消息,不是吗?
-
:) golang 二进制文件显示所有 AWS 上传输出 (ETAG),所以即使我
echo shell_exec(/path/to/binary)它应该输出响应 -
您是否尝试在命令末尾添加
2>&1?例如,如果您的命令是:shell_exec('your_script.sh');,它将变为shell_exec('your_script.sh 2>&1'); -
@mdexp 刚刚尝试了您的建议的不同变体,但还没有成功
-
请提供php-script中使用的执行字符串