2011-08-03 48 views
0

我的環境是PHP5.3 + APACHE +的Windows XP + bsdtar.exe(重命名爲tar.exe)在我的系統路徑shell_execute無法在Windows上運行Apache焦油

我在我的提取物驗證碼.php: shell_exec('tar --no-same-permissions -xjf「C:\ Documents and Settings \ abcxyz.tar.bz2」');

我可以運行extract.php使用CMDLINE PHP客戶端,如: PHP extract.php

但每當我嘗試在本地服務器上運行,不執行焦油。我的php和apache路徑都包含tar.exe文件夾。

不知道爲什麼它不起作用?

回答

0

直接從PHP,你將代表你的用戶運行該命令,而不是另一個帳戶女巫沒有權限。

執行services.msc並找到apache服務,右鍵>登錄選項卡,並從本地系統帳戶更改爲用戶創建的帳戶,輸入用戶名和密碼並重新啓動服務。

+0

非常感謝!這解決了我的問題! – coderek

0

有幾個問題。

  1. 我不知道你的Apache的配置方式,但最有可能的CWD是一樣的腳本。因此,請提供tar的完整路徑。

  2. 文件名是'tar.exe',而不是'tar'。改變這一點。

  3. 確保您的開發箱上的PHP沒有以安全模式運行。當PHP以安全模式運行時,shell_exec()不起作用。

如果你希望你的代碼在這兩個你的Linux機器,以及你的Windows開發框運行,創建一個基於主機或特定於平臺的配置文件(使用PHP_OSphp_uname('n'))如果您運行