在Ubuntu环境下解决ThinkPHP内存溢出问题,可从以下方面入手:
调整PHP内存限制
php.ini文件(路径:/etc/php/{版本}/fpm/php.ini或/etc/php/{版本}/cli/php.ini),找到memory_limit参数,将其值调大(如256M或512M),重启PHP-FPM或Web服务器(如Nginx/Apache)使配置生效。fastcgi_param PHP_VALUE "memory_limit=256M";,重启Nginx。优化代码逻辑
array_slice分批处理)。unset()函数清理内存。N+1查询问题,合理使用with()预加载关联数据。启用缓存机制
监控与调优
系统级优化
vm.swappiness)优化内存管理。操作示例:
sudo nano /etc/php/8.1/fpm/php.ini
# 找到 memory_limit=128M,修改为 memory_limit=256M
sudo service php8.1-fpm restart
ini_set('memory_limit', '512M');
注意:优先通过优化代码和配置解决根本问题,避免盲目调高内存限制导致服务器资源浪费。