2014-12-27 70 views
1

好的工作我試圖做我的PHP文件如下:EXEC()PHP在瀏覽器不工作,但在終端

exec("java -jar /Applications/XAMPP/htdocs/Web/SimpleEncryption.jar hola", $output); 

我得到陣列(0){}

如果我執行PHP文件.php在它的工作終端。

如果我運行

exec("whoami", $result); 

我得到在終端瀏覽器和陣列([0] => DAO)陣列([0] =>守護進程)。 dao =我的用戶。

我不知道我必須給予什麼權限以及如何給予他們。

謝謝

+0

Web服務器用戶(例如www-data for apache)沒有執行shell命令的權限。 – Tyr 2014-12-27 15:50:01

+0

確保用戶'daemon'知道在哪裏可以找到'java'。 – axiac 2014-12-27 15:50:47

+0

'java'可能不在webserver的'$ PATH'中。使用命令的完整路徑。 – Barmar 2014-12-27 15:51:22

回答

1

這可能是PHP服務器進程的用戶名不是你的用戶名。當您從終端運行它時,您以dao身份登錄,但由web服務器提供的php進程使用不同的用戶名。如果您使用的是php-fpm,則在conf文件中指定用戶名。

+0

我正在使用XAMPP,配置文件在哪裏? – user3171362 2014-12-27 16:13:23

+0

現在我在瀏覽器和終端中擁有與whoami相同的答案...但仍然無法正常工作。 – user3171362 2014-12-27 16:22:57

+0

根據您使用的PHP版本(<5.3我認爲),您可能必須禁用安全模式。 http://stackoverflow.com/questions/24999673/how-to-enable-shell-exec-and-exec-on-php。或者您需要從已刪除函數的列表中刪除exec http://www.cyberciti.biz/faq/linux-unix-apache-lighttpd-phpini-disable-functions/ – bspates 2014-12-27 16:32:35

相關問題