exec()和system()命令不起作用(php)

时间:2013-06-04 11:51:43

标签: php

我正在使用wamp 2.2e。 我已经在服务器上测试了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')

与system()相同...... 试过“cmd /c”..

没有用。

我还发现了一个潜在的原因 - 也许我需要使用CALC命令为cmd设置permmisions,但我不知道我的用户是什么,它是控制面板中的计算机名称 - >系统?

请帮助我


好的,有进展,现在浏览器显示错误:

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()) - 它有帮助吗?

2 个答案:

答案 0 :(得分:0)

您可能必须通过Python可执行文件调用这些文件,因为Python PATH用户apache中的Python.exe不太可能:

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

Windows上有几个exec抱怨。您可能会发现将Python代码重构为PHP远比使用apache用户访问整个磁盘更省时,更安全。

答案 1 :(得分:-1)

如果安装ActiveState python,安装程序会将.py扩展名的文件与python.exe程序相关联。因此,你需要做的就是双击文件(在windows 2k(可能还有其他)中,你可以直接输入文件名(即)foo.py,命令shell知道调用相关的应用程序)

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

EDIT;

这将解决您的问题: http://www.iis-aid.com/articles/trouble_shooting/warning_exec_functionexec_unable_to_fork