TYPO3扩展ke_search调度器存在Bug
解决TYPO3 6.2 + ke_search 2.2 CLI调度器索引内存耗尽问题
看起来你遇到的是CLI模式下PHP内存限制不足的典型问题——手动在后端操作(模块索引、手动触发调度器)没问题,是因为这些操作跑在web服务器环境里,对应的PHP配置通常有更高的内存配额;但用php typo3/cli_dispatch.phpsh scheduler执行时,走的是CLI模式的PHP配置,默认内存限制只有16MB,完全不够ke_search遍历站点内容做索引的消耗。
给你几个靠谱的解决办法,按优先级排序:
1. 临时提升单条命令的内存限制
直接在执行调度器命令时追加内存参数,不用改配置文件,快速生效:
php -d memory_limit=256M typo3/cli_dispatch.phpsh scheduler
这里的256M可以根据你的站点大小调整,如果是内容较多的站点,改成512M甚至1G都没问题,只要服务器内存足够。
2. 永久修改CLI模式的PHP内存配置
如果不想每次执行命令都加参数,可以永久调整CLI的PHP配置:
- 先找到CLI对应的php.ini文件:执行
php -i | grep php.ini,找到输出里的Loaded Configuration File路径(注意这和web端的php.ini可能不是同一个)。 - 用编辑器打开这个php.ini,找到
memory_limit选项,把值改成更大的数值,比如:memory_limit = 256M - 保存后,执行
php -r "echo ini_get('memory_limit');"确认修改已经生效。
3. 优化ke_search索引减少内存占用(可选)
如果服务器内存确实紧张,也可以从索引任务本身优化:
- 打开ke_search的后端配置,排除不需要索引的页面、内容类型或者扩展,减少单次索引需要处理的数据量。
- 如果ke_search支持的话,把调度器的索引任务拆分成多个小任务(比如按页面树分支分批索引),降低单次任务的内存负载。
内容的提问来源于stack exchange,提问作者Paolito75
相关产品推荐
相关产品推荐

