PHP执行程序不工作


PHP exec not working

我在Windows 7 64位机器上运行Apache 2.2.17和PHP 5.3.5。

我注意到,如果我试图使用exec()、system()或任何其他函数通过PHP执行系统命令,它都不起作用。如果将完全相同的命令粘贴到命令行窗口中,它们也会起作用。这似乎影响到所有不是最简单的命令行程序的程序。即使是打开记事本的简单尝试也无法工作,例如系统("C:''Windows/system32/notepad.exe")。

是什么原因造成的?

感谢

读取

例如

<?php exec('C:''WINDOWS''system32''psexec.exe ''192.168.1.224 -u myuser ... etc.

在引用的讨论中,我还看到了以下内容:

引用;在Windows中,exec()对"cmd/cyour_command"发出内部调用。这意味着您的命令必须遵循cmd.exe强加的规则,cmd.exe在完整命令周围包含一组额外的引号:

http://ss64.com/nt/cmd.html

当前的PHP版本考虑到了这一点,并自动添加引号,但旧版本没有。尾引号:

还有一些关于在命令所在的文件夹上设置Windows权限的讨论,我可以想象这在Vista或Windows7机器上可能会非常令人心痛。您可能需要以某种方式允许访问WAMP服务器本身。

编辑:

我唯一能想到的其他建议是:

  • 授予对可执行文件和包含该文件的文件夹路径上的EVERYBODY的完全访问权限

  • 查看服务器错误日志,查看是否有包含任何有用信息的错误消息

我又想到一件事:

  • 将您的可执行文件复制到C:''WINDOWS''SYSTEM32,并像"ping"一样运行它

祝你好运!

来源:推荐阅读:很多人讨论很多问题的解决方案

http://php.net/manual/en/function.exec.php

不幸的是,这些解决方案都不适合我。我已经改变了我的方法,不会使用PHP来启动可执行文件。