使用 PHP 的 shell_exec() 运行 cordova -v

mos*_*ali 5 php linux ubuntu cordova

有没有人成功地让 PHPshell_exec()成功运行 Cordova-CLI 命令?本质上,当我运行以下命令时:

<?php
    try {
        putenv('PATH='. getenv('PATH') .':/usr/local/bin');
        exec('cordova -v 2>&1', $output);
        print_r($output);
    }
    catch(Exception $ex) {
        echo '<pre>';
        print_r($ex);
    }
?>
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

Array
(
    [0] => path.js:8
    [1] =>     throw new TypeError('Path must be a string. Received ' +
    [2] =>     ^
    [3] => 
    [4] => TypeError: Path must be a string. Received undefined
    [5] =>     at assertPath (path.js:8:11)
    [6] =>     at Object.posix.join (path.js:479:5)
    [7] =>     at Object.<anonymous> (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js:35:31)
    [8] =>     at Module._compile (module.js:410:26)
    [9] =>     at Object.Module._extensions..js (module.js:417:10)
    [10] =>     at Module.load (module.js:344:32)
    [11] =>     at Function.Module._load (module.js:301:12)
    [12] =>     at Module.require (module.js:354:17)
    [13] =>     at require (internal/module.js:12:17)
    [14] =>     at Object.<anonymous> (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/cordova.js:21:20)
)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 phpshell_exec运行 Cordova时,它只是显示相同的错误。为了测试,我只是打印出 Cordova 的版本。但错误仍然存​​在。当我在 Ubuntu 上使用终端时,Cordova 运行得很好,但它不能在 PHP 应用程序上运行。