試圖通過PHP執行shell命令
在終端,如果我用echo $PATH
我得到我的我已經設置爲/Users/edward/.composer/vendor/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/go/bin
在PHP get_current_user()
完整路徑給我,我登錄時使用的相同用戶上述終端是edward
但是,如果我運行shell_exec('echo $PATH')
我只得到/usr/bin:/bin:/usr/sbin:/sbin
這是我的問題,因爲我想使用shell_exec()
運行一個命令,它無法找到,因爲$PATH
我使用的是帶有apache2和PHP5.6的Mac OS X 10.11.4。 添加到$PATH
在.profile
或.bash_profile
似乎沒有任何影響。
P.S.我知道我可以通過在我的shell_exec()
調用中簡單地使用可執行文件的完整路徑來解決這個問題,但我在Mac系統上開發並部署到Linux系統並且路徑不相同,所以我寧願修復我的$PATH
。
[PHP系統調用和$ PATH在OS X中]的可能重複(http://stackoverflow.com/questions/3431858/php-system-calls-and-path-in-os-x) –
請記住,cli php可以有(默認情況下是imho)他自己的php.ini ... – donald123
如果你'shell_exec(「id -un」)'可能表明路徑屬於誰。 (我被告知明白'id -un'是OSX相當於* NIX'whoami') – apokryfos