java
  • php
  • shell
  • 2009-07-31 67 views 1 likes 
    1

    我在php中遇到了shell函數的一些問題。我想通過在php網頁上運行php函數來在服務器上執行一個java程序。使用PHP無法運行shell函數

    java程序將一些字符寫入服務器上的本地文件。

    test.php的

    <?php 
    
        $WshShell = new COM("WScript.Shell"); 
        $cmd = ' "C:\\Program Files\\Java\\jdk1.6.0_14\\bin\\java" Importer 1 2 updated.txt 7'; 
    
        $WshShell->exec($cmd); 
        echo "okay"; 
    ?> 
    

    當經由在服務器上的命令行執行test.php的,

    c:\php test.php 
    

    java程序運行。

    但是,如果我通過網絡瀏覽器執行它,Java程序不會被調用。

    http://127.0.0.1/test.php 
    

    是否因爲Apache用戶不被允許在Windows上使用命令行功能?

    系統配置:

    微軟windows XP,專業x64版,2003版,Service Pack 2的 PHP版本:5.2.6.6 Apache 2.2的 IIS 6

    +2

    嘗試添加error_reporting(E_ALL);在上面看看你得到了什麼錯誤。 – Zed 2009-07-31 05:48:14

    回答

    1

    我發現這裏

    Calling MySQL exe using PHP exec doesn't work

    的解決方案是不是操作系統的問題,而是 「引號」 的問題。

    0

    你得到了什麼錯誤?

    不是真的知道PHP然而,我有一個問題: 你不完全限定的Java程序需要更新的文件,你確定它不是寫的,但有些目錄,其中已安裝PHP服務器,下

    2

    你爲什麼不使用普通的PHP'exec'函數?

    +0

    我不明白他爲什麼起訴OS特定的擴展。 – dusoft 2009-07-31 12:34:22

    0

    您的問題可能是由於Apache在「safe_mode」下運行Apache所致......您可以在php.ini文件中檢查此問題。

    相關問題