2013-06-04 148 views
0

我正在使用wamp 2.2e。 我已經在tha服務器上測試過PHP,它工作正常。exec()和system()命令不起作用(php)

現在,我有一個腳本叫做scriptA.py,我想執行。 我沒有使用安全模式,並且在php.ini中disable_functions行是空的。 好了,我想:

exec("C:\wamp\www\scriptA.py") 
exec('C:\wamp\www\scriptA.py') 
exec('C:\\wamp\\www\\scriptA.py') 

同樣與 「cmd /c」 試圖系統()... ..

沒有奏效。

我還發現了一個潛在的原因 - 也許我需要使用CALC命令設置perdisions到cmd,但我不知道我的用戶是什麼,它是控制面板 - >系統中的計算機名稱嗎?

請幫助我


OK,有進步,現在的瀏覽器顯示我的錯誤:

Warning: exec() [<a href='function.exec'>function.exec</a>]: Unable to fork [C:\wamp\www\Telnetshutdown.py] in C:\wamp\www\index2.php on line 2 
# Time Memory Function Location 
1 0.0005 362784 {main}() ..\index2.php:0 
2 0.0005 362912 exec () ..\index2.php:2 

(類似的,如果我嘗試用system()) - 幫助?

+0

u需要安裝python.compiler,然後指向正確的編譯器 – ajreal

+0

也許它的工作,但用戶(操作系統)是不是你?檢查你的過程是否正在運行。 – enenen

+0

我是管理員。 python也在路徑中更新。如果我在cmd中寫'C:\ wamp \ www \ scriptA.py',那麼腳本就可以工作。 – user2162550

回答

0

你可能必須通過Python可執行程序來調用這些,因爲它是不可能Python.exe在你apache用戶的PATH

exec('C:\Python3\Python.exe C:\wamp\www\ScriptA.py'); 

有一些抱怨與exec在Windows上。您可能會發現,將Python代碼重構爲PHP比起給予整個磁盤的用戶訪問權限要花費更少的時間和更多的安全性。

+0

仍然不起作用:( – user2162550

-1

如果您安裝了ActiveState python,安裝程序會將.py擴展名的文件關聯到python.exe程序。因此,所有你需要做的是雙擊文件(在Windows 2k(可能還有其他))中,你可以簡單地鍵入文件名(即foo.py和命令shell知道調用相關應用程序)

http://www.activestate.com/Products/ActivePython/

編輯;

這將解決你的問題: http://www.iis-aid.com/articles/trouble_shooting/warning_exec_functionexec_unable_to_fork

+1

如果你告訴我爲什麼你低估了答案,那麼它會很好嗎? – Matheno

+0

我沒有使用IIS!鏈接是針對IIS用戶的。當我編寫命令時,我得到 - 「帳戶名稱和安全ID之間沒有映射完成。」 – user2162550

+0

您收到的錯誤消息表示分析服務器收到包含無法解析的用戶名的腳本。基本上,在你的某個安全角色中,你有一個不再是該域的一部分的成員。或者它可能是你試圖使用本地用戶和機器名稱已經改變,或者你正在部署到不同的機器。 – Matheno