【发布时间】:2013-08-14 15:31:39
【问题描述】:
这里有点挑战。我们通过 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 上。
知道会发生什么吗?在这种情况下,Google 并不是很有帮助。
【问题讨论】:
-
您是否考虑过使用 php 库来调整大小,而不是调用外部工具?我推荐imagine。
-
目前这不是一个选项——我只是想在客户安装时解决这个问题。 mogrify 在 LAMP 上运行良好,并且到目前为止在有问题的服务器上运行良好。