You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用shell_exec执行openssl命令报unknown option 2错误如何解决

错误原因

  1. 重定向语法错误:你命令中写的2 >/dev/null在2和>之间多了空格,shell会把独立的2作为参数传递给openssl,直接触发「unknown option 2」的报错,标准错误重定向的正确写法是2>/dev/null,中间不能加空格。
  2. PHP变量解析错误:你用单引号包裹shell命令,PHP单引号字符串不会解析内部的{$domain_name}变量,命令会原样把{$domain_name}作为参数传递,无法替换为实际的域名值,导致命令执行不符合预期。

修复后的代码

// 改用双引号包裹命令,保证变量正常解析,同时修正重定向的空格问题
$response = shell_exec("openssl s_client -servername {$domain_name} -connect {$domain_name}:443 2>/dev/null | openssl x509 -noout -enddate | grep notAfter | sed -e s#notAfter=##");

调试建议

如果执行仍然有问题,可以先打印拼接完成的命令,确认参数是否符合预期:

$cmd = "openssl s_client -servername {$domain_name} -connect {$domain_name}:443 2>/dev/null | openssl x509 -noout -enddate | grep notAfter | sed -e s#notAfter=##";
// 输出命令确认格式
echo $cmd;
$response = shell_exec($cmd);

内容的提问来源于stack exchange,提问作者naoki-haba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:18:02