PHP exec无法正常工作

时间:2012-08-28 16:34:02

标签: php system

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

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

导致这种情况的原因是什么?

由于

2 个答案:

答案 0 :(得分:1)

阅读

E.g。

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

我在参考讨论中也看到以下内容:

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

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

当前的PHP版本将此考虑在内并自动添加引号,但旧版本没有。 endquote:

还有一些关于在命令所在的文件夹上设置Windows权限的讨论,我可以想象这可能是Vista或Windows 7机器上的胃灼热。您可能需要以某种方式允许访问WAMP服务器。

修改

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

  • 授予对可执行文件的EVERYBODY的完全访问权限以及包含它的文件夹路径

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

我还有一件事:

  • 将您的可执行文件复制到C:\ WINDOWS \ SYSTEM32,并将其作为“ping”运行。
祝你好运!

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

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

答案 1 :(得分:0)

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