我有一個(gè)從 PHP 調(diào)用的 shell 腳本(稱為 test.sh)。在腳本中我只有:#!/bin/bashecho $(whoami)cordova platform version ios如果我從終端內(nèi)調(diào)用 test.sh 它工作正常并返回 cordova ios 版本。如果我嘗試使用 PHP 調(diào)用 test.sh,我會(huì)得到:cordova: not found我已將 apache 更改為以我的用戶名而不是 _www 運(yùn)行,但這沒有用。任何人都可以指出我正確的方向,因?yàn)槲也逻@是一個(gè)權(quán)限問題?我現(xiàn)在通過刪除 .sh 文件并僅使用 PHP 腳本(在用戶 _www 下)進(jìn)一步簡化了它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貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
為了解決這個(gè)問題,我查看了從終端和 PHP 返回的路徑,它們都使用相同的用戶名但返回了不同的路徑詳細(xì)信息。
添加到 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");
它開始起作用了。我現(xiàn)在在查找證書時(shí)遇到問題,但在調(diào)查之后這將是一個(gè)不同的問題。
- 1 回答
- 0 關(guān)注
- 133 瀏覽
添加回答
舉報(bào)
0/150
提交
取消