【发布时间】:2014-02-12 00:03:32
【问题描述】:
我在 Windows Server 2012 上通过 Apache (WAMP) 执行 VBScript 时遇到问题。我正在尝试将 Docx 转换为 PDF,并且脚本从命令行完美运行,但在通过 PHP 运行时失败。我不会发布 vbscript,而是提供一个链接:http://bit.ly/1gngYAn
当通过 PHP 如下执行时,WINWORD.exe 启动,VBScript 也启动,它挂在那里,没有任何反应。没有生成 PDF(而且我从未在目录中看到 ~temporary.docx 隐藏文件弹出)。
我几乎尝试了 exec、system、passthru 和 COM ('WScript.Shell') 的每一次迭代,结果都一样。
为了避免“转义”问题,我还尝试通过 .bat 文件执行脚本,因此不需要传递任何参数,结果是一样的。
这是我当前的 php 代码(convert.vbs 是上面链接中的代码):
$obj = new COM ( 'WScript.Shell' );
$obj->Run ( 'cmd /C wscript.exe //B C:\Users\Administrator\Desktop\convert.vbs c:\wamp\www\fileconv\temp_store\52fa8272bf84f.docx', 1, false );
//I have tried different "window styles" too, and it doesn't make a difference
我还尝试修改apache服务用户以管理员身份运行(这不是生产服务器),并启用“允许服务与桌面交互”,结果相同。
我还确保每个人(读取、写入、执行等)都可以“完全控制”目录。
如果我从命令行运行或使用“.bat”文件运行,它会完美运行。
由于它挂起(脚本和单词,而不是 apache),我查看了控制面板中的事件查看器,但没有相关的事件。
我的问题首先是,为什么会发生这种情况,其次,如果无法回答第一个问题,是否有办法可以更深入地了解执行过程时发生的情况,以进一步排除故障它?到目前为止,我没有要查看或输出的数据来帮助我进行故障排除。
请随时询问任何详细信息。我已经尝试了很多次迭代来尝试让它工作,搜索了高低,似乎无法找到任何答案。
感谢您的帮助,
路易
【问题讨论】: