猿问

通过 shell 脚本运行 Cordova - 权限问题

我有一个从 PHP 调用的 shell 脚本(称为 test.sh)。在脚本中我只有:


#!/bin/bash

echo $(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。


Helenr
浏览 113回答 1
1回答

MMTTMM

为了解决这个问题,我查看了从终端和 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");它开始起作用了。我现在在查找证书时遇到问题,但在调查之后这将是一个不同的问题。
随时随地看视频慕课网APP
我要回答