我有一個從 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,我會得到:cordova: not found我已將 apache 更改為以我的用戶名而不是 _www 運行,但這沒有用。任何人都可以指出我正確的方向,因為我猜這是一個權(quán)限問題?我現(xiàn)在通過刪除 .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條經(jīng)驗 獲得超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");
它開始起作用了。我現(xiàn)在在查找證書時遇到問題,但在調(diào)查之后這將是一個不同的問題。
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消