我在Windows 7 64位计算机上运行Apache 2.2.17和PHP 5.3.5。
我注意到如果我尝试使用exec(),system()或任何其他函数来通过PHP执行系统命令它不起作用。如果将它们粘贴到命令行窗口中,则完全相同的命令将起作用。这似乎影响了所有不是最简单的命令行程序的程序。即使是打开记事本的简单尝试也不会起作用,例如系统( 'C:/Windows/system32/notepad.exe')
导致这种情况的原因是什么?
由于
答案 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强加的规则,其中包括完整命令周围的一组额外引号:
当前的PHP版本将此考虑在内并自动添加引号,但旧版本没有。 endquote:
还有一些关于在命令所在的文件夹上设置Windows权限的讨论,我可以想象这可能是Vista或Windows 7机器上的胃灼热。您可能需要以某种方式允许访问WAMP服务器。
修改强>
我能想到的唯一其他建议是:
授予对可执行文件的EVERYBODY的完全访问权限以及包含它的文件夹路径
检查服务器错误日志以查看是否有包含任何有用信息的错误消息
我还有一件事:
来源(S): 推荐阅读:很多人讨论了很多问题的解决方案
答案 1 :(得分:0)
不幸的是,这些解决方案都不适用于我。我已经改变了我的方法,不会使用PHP来启动可执行文件。