我有一个从 PHP 调用的 shell 脚本(称为 test.sh)。在脚本中我只有:#!/bin/bashecho $(whoami)cordova platform version ios如果我从终端内调用 test.sh 它工作正常并返回 cordova ios 版本。如果我尝试使用 PHP 调用 test.sh,我会得到:cordova: not found我已将 apache 更改为以我的用户名而不是 _www 运行,但这没有用。任何人都可以指出我正确的方向,因为我猜这是一个权限问题?我现在通过删除 .sh 文件并仅使用 PHP 脚本(在用户 _www 下)进一步简化了它exec('echo $(whoami) 2>&1', $output, $return_var); print_r($output);echo "<br><br>"; putenv("CORDOVA_HOME=/usr/local/bin/cordova");exec('cordova -v 2>&1', $output, $return_var); print_r($output);注意:whoami 工作正常但仍未找到 corvoda。
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
为了解决这个问题,我查看了从终端和 PHP 返回的路径,它们都使用相同的用户名但返回了不同的路径详细信息。
添加到 PHP 后:
putenv("PATH=".getenv('PATH').":/Users/USERNAME/.sdkman/candidates/gradle/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands");
putenv("CORDOVA_HOME=/usr/local/bin/cordova");
它开始起作用了。我现在在查找证书时遇到问题,但在调查之后这将是一个不同的问题。
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消