警告:exec():无法分叉PHP

我在Windows Server 2008上使用PHP 5 apache,我禁用了IIS。

我在我的PHP脚本中使用exec命令,它工作正常,但今天我得到一个错误:

Warning: exec(): Unable to fork 

我给C:\Windows\System32文件夹中的cmd.exe权限,但这并没有解决问题。

Solutions Collecting From Web of "警告:exec():无法分叉PHP"

在64位窗口(例如server 2008)中,有一个名为c:\ windows \ syswow64的文件夹,其中包含32位应用程序所需的所有可执行文件/ dll。 安装在您的64位机器上。 确保您所需的32位.exe / dll等放在该文件夹中。 如果你不能找到它,那么你将不得不把所需的.exe / dll的32位版本。因此,这可以用于由yopur应用程序/进程。

现在,当您的32位应用程序/进程执行时,Windows将自动重定向您的进程以在syswow64文件夹中执行所需的应用程序。

希望能够解决您的兼容性问题。

具体哪些权限你给谁? 可能不是正确的用户..

运行这个PHP脚本:

 echo 'Script is executed by: ' . get_current_user() . getmygid(); 

它会告诉你哪个用户正在运行PHP脚本,因此哪个用户授予cmd.exe权限。

我自己也有这个问题,但最终能够解决这个问题。 问题是由于我不小心将cmd.exe设置为“以管理员身份运行”。 我说“意外”,因为我以为我只是在我的任务栏上设置快捷方式的兼容性设置,但事实证明它是设置.exe本身的兼容性。 无论如何,我通过删除注册表项在这里禁用:

 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 

做完这些之后,一切又开始了。