今天某个时候,发生了这个错误并且脚本被挂起了:
[21-Aug-2013 08:35:06] PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `WScript.shell': CoInitialize has not been called.
' in C:\path\to\my\script.php:357
Stack trace:
#0 C:\path\to\my\script.php(357): com->com('WScript.shell')
#1 {main}
thrown in C:\path\to\my\script.php on line 357
这是导致错误的行(在循环中运行):
$com = new Com('WScript.shell');
这条线通常运行正常,所以我不会错过任何库。为什么会发生这种情况?
答案 0 :(得分:2)
转到php.ini并添加此行。之后,重启php服务器。祝你好运
extension=php_com_dotnet.dll
答案 1 :(得分:1)
这很可能是由于桌面堆分配错误造成的。验证的一种方法是转到Windows事件日志(系统类别)并搜索“桌面堆分配失败”错误或警告。作为解决方法,您可以考虑使用shell_exec。
有关桌面堆分配错误的更多详细信息,请参阅KB 184802
答案 2 :(得分:0)
有效地包含库" extension = php_com_dotnet.dll"在php.ini中可以用于执行$ command = new Com(' WScript.Shell'); 在我的情况下它适用于Apache / 2.2.29服务器(Win64)PHP / 3.5.29 mod_ssl / 2.2.29
非常感谢。