Ubuntu中PHP内存配置指南
在Ubuntu系统中,PHP内存配置主要围绕调整内存限制和优化内存使用展开,适用于Web服务器(Apache/Nginx+PHP-FPM)或命令行(CLI)场景。以下是具体方法:
php --ini命令,查看Loaded Configuration File路径(如/etc/php/8.2/fpm/php.ini或/etc/php/8.2/cli/php.ini)。sudo nano)打开对应路径的php.ini文件,找到memory_limit配置项(默认可能为128M或带注释)。;)并设置所需内存(支持K/M/G单位,如256M、512M),例如:memory_limit = 256M
sudo systemctl restart php8.2-fpmsudo systemctl restart apache28.2替换为实际PHP版本号)-d参数指定,例如:php -d memory_limit=512M your_script.php
export命令设置环境变量(仅对当前终端会话有效):export PHP_MEMORY_LIMIT=512M
若无法修改php.ini,可在网站根目录(如/var/www/html)创建或编辑.htaccess文件,添加以下内容:
php_value memory_limit 512M
保存后,Apache会自动加载该配置。
OPcache可缓存编译后的PHP脚本,减少内存占用和执行时间。在php.ini中添加/修改以下配置:
[opcache]
opcache.enable=1
opcache.memory_consumption=128 # OPcache分配的内存大小(MB)
opcache.interned_strings_buffer=8 # 内部字符串缓冲区大小(MB)
opcache.max_accelerated_files=4000 # 加速的脚本文件数量
opcache.revalidate_freq=60 # 脚本缓存验证频率(秒)
修改后需重启PHP-FPM/Apache服务。
unset()函数释放不再需要的变量(如大数组、数据库连接)。yield替代数组,避免一次性加载所有数据到内存。gc_collect_cycles()手动触发垃圾回收(适用于循环中产生大量无用变量的场景)。info.php,内容为:<?php phpinfo(); ?>
http://服务器IP/info.php,搜索memory_limit,确认显示的值与配置一致。memory_limit不应超过服务器物理内存的70%(如服务器有8GB内存,建议不超过6GB)。php.ini或.htaccess,需联系主机提供商调整。ab、wrk工具)验证服务器稳定性,避免因内存过高导致崩溃。