项目场景:
项目中暂时没有开php gnupg
扩展,所有使用 exec
执行 gpg
命令
问题描述
代码如下:
<?php
$output = null;
$retval = null;
$res = exec("gpg --import /opt/upload/test.asc",$output,$retval);
echo '<pre>';
var_dump($res);
var_dump($output);
var_dump($retval);
打印的结果是空的,$retval
的值是 2
原因分析:
应该是有错误,exec 执行的命令不返回错误信息。
解决方案:
使用管道命令,修改代码如下
<?php
$output = null;
$retval = null;
$res = exec("gpg --import /opt/upload/test.asc 2>&1",$output,$retval);
echo '<pre>';
var_dump($res);
var_dump($output);
var_dump($retval);
打印结果:
果然,权限不够。
参考链接:php exec 没有返回值怎么办