这里有点挑战。我们通过 Apache 运行一个 PHP 脚本,允许用户使用他们的浏览器上传图片。该脚本尝试使用 mogrify 来缩小上传后的图像。Mogrify 使用 PHP 的 exec() 函数调用,例如:
exec('C:\PROGRA~1\ImageMagick-6.8.6-Q16\mogrify.exe -resize "93x125!" "C:\WINDOWS\Temp\cpm10C4"');
由于某种原因, exec() 函数不会恢复到脚本的下一行。它就停在那里。
我尝试在命令行手动执行命令,效果很好,我也尝试从命令行运行脚本。奇迹般有效。只有在通过 Apache 运行时,它才会像这样抽筋。
Windows 任务管理器显示浏览器对脚本的每个请求都会产生一个 mogrify.exe 进程,该进程只是挂在那里,不占用 CPU。
这一切都发生在 Windows Server 2003 上。
知道会发生什么吗?在这种情况下,谷歌并不是很有帮助。