2010-08-02 67 views
1

我寫了一個從命令行運行的Java應用程序。我想讓用戶通過一個簡單的PHP Web界面來訪問它 - 它只會讓他們指定某些參數,然後執行Java應用程序並返回輸出。如何在php web腳本中獲取java應用程序的輸出?

出於某種原因,我得到一個「權限被拒絕」的錯誤消息時,我嘗試做與Java任何東西,甚至一些簡單的:

shell_exec('/usr/bin/java -version 2>&1'); 

返回「SH:在/ usr/bin中/通過瀏覽器運行時,java:Permission denied'。

如果我給apache一個shell帳戶並以apache身份登錄,我可以執行此命令。

如果沒有關聯的tty,是否有某種設置阻止JVM運行?我怎樣才能使這個工作?我正在運行PHP 5.3.2。

感謝

+0

你確定PHP是以Apache用戶身份運行嗎? – 2010-08-02 09:35:08

+0

是的 - 我剛剛在腳本中運行'whoami',並報告'apache'。 – 2010-08-02 09:37:12

+1

safe_mode已關閉,並且錯誤來自sh,所以執行某些操作(此信息存在於我刪除的答案中,我放在這裏,因此不會丟失) – 2010-08-02 09:47:04

回答

3

您的應用程序的主機可以用相同AppArmorSELinuxTOMOYOSMACK,或類似的約束工具的工具被限制。

將Apache限制爲允許執行/usr/bin/whoami而非/usr/bin/java會很簡單。

要求您的系統管理員授予您對Java和您的罐子的訪問權限。

+0

他們通常會在未經授權的訪問中留下日誌... in如果他是管理員,他應該找他們 – 2010-08-02 09:49:59

+0

非常感謝。是的,SELinux是問題所在。我不會想到這一點。謝謝。 – 2010-08-02 09:51:49

相關問題