You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Symfony内置Web服务器中启用多服务进程?

解决Symfony内置服务器下Browsershot无法捕获本地页面的问题

问题根源

Symfony内置的PHP Web服务器默认采用单进程模式,当你在/create-img-from-html接口中调用Browsershot请求本地localhost:8000/test时,主进程被当前请求占用,无法处理新的并发请求,导致页面捕获失败。而请求外部URL时不存在这个阻塞问题,因此能正常工作。

解决方案

你需要在启动Symfony服务器时,设置PHP_CLI_SERVER_WORKERS环境变量来启用多进程模式,具体操作分系统:

Linux/macOS 终端

直接在启动命令前添加环境变量:

PHP_CLI_SERVER_WORKERS=2 symfony server:start

或者直接使用PHP内置服务器命令:

PHP_CLI_SERVER_WORKERS=2 php -S localhost:8000 -t public

Windows PowerShell

先设置环境变量再启动服务器:

$env:PHP_CLI_SERVER_WORKERS=2; symfony server:start

验证设置

启动服务器后,查看终端日志,如果出现类似Using 2 workers的提示,说明多进程模式已生效。此时再测试/create-img-from-html接口,Browsershot就能正常捕获本地页面的内容了。

注意事项

  • PHP_CLI_SERVER_WORKERS是PHP内置服务器的参数,不需要在Symfony的配置文件中设置,仅需在启动服务器时指定。
  • 该参数要求PHP版本≥7.4,你使用的PHP 8.1完全满足要求。

内容的提问来源于stack exchange,提问作者Lennart Bauer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:27:05