喜讯!TCMS 官网正式上线!一站式提供企业级定制研发、App 小程序开发、AI 与区块链等全栈软件服务,助力多行业数智转型,欢迎致电:13888011868 QQ 932256355 洽谈合作!

/opt/local/var/db/php56/),修改后需重启 PHP 服务(sudo port unload php56-fpm && sudo port load php56-fpm 或重启内置服务器)生效。
apcu.ini)配置文件路径:/opt/local/var/db/php56/apcu.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
apc.shm_size | 64M(中小项目)/ 128M(大项目) | 共享内存大小,用于存储缓存数据。过小会导致缓存频繁失效(apc_cache_full 警告),过大会浪费内存。可通过 php56 -i | grep "apc.cache_full_count" 查看是否频繁满缓存。 |
apc.ttl | 3600(秒) | 缓存项默认过期时间。根据数据更新频率调整:静态数据(如配置)可设 86400(1天),动态数据(如商品列表)设 300-3600。 |
apc.user_ttl | 3600(秒) | 用户缓存(apcu_store)的过期时间,建议与 apc.ttl 保持一致,避免用户缓存长期占用内存。 |
apc.max_file_size | 1M | 单个文件的最大缓存大小(适用于 opcode 缓存)。若项目有大文件(如模板),可适当提高至 2M,但不宜过大(会增加内存占用)。 |
调优原则:优先保证缓存不频繁满(cache_full_count 接近 0),再根据数据时效性调整 TTL。
redis.ini)配置文件路径:/opt/local/var/db/php56/redis.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
redis.default_socket_timeout | 2(秒) | Redis 连接超时时间。过小可能导致偶发连接失败(网络波动),过大会阻塞 PHP 进程(建议 ≤3 秒)。 |
redis.retry_interval | 100(毫秒) | 连接失败后的重试间隔。高并发场景可设 50-100,避免频繁重试消耗资源。 |
redis.pconnect.connection_limit | 100 | 持久连接的最大数量。根据服务器 Redis 最大连接数(maxclients)调整,避免超过上限导致连接失败(默认 Redis 最大连接数为 10000,留足余量)。 |
redis.serialize_handler | php | 序列化方式。php 兼容性最好(适配 PHP5.6),igbinary 需额外安装 php56-igbinary 扩展,性能略优但可能有兼容性风险。 |
调优原则:缩短超时时间减少阻塞,控制持久连接数避免 Redis 连接耗尽。
memcached.ini)配置文件路径:/opt/local/var/db/php56/memcached.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
memcached.sess_locking | On | 会话锁开关。开启可避免并发写会话导致的数据错乱(适合用户登录场景),但会增加轻微延迟;无会话场景可设 Off。 |
memcached.connection_timeout | 1000(毫秒) | 连接超时时间(毫秒级),建议 500-1000,平衡响应速度和稳定性。 |
memcached.retry_timeout | 5(秒) | 服务器down机后的重试间隔。避免短时间内频繁重试(如设 5 秒,减少无效请求)。 |
mysql.ini)配置文件路径:/opt/local/var/db/php56/mysql.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
mysqli.connect_timeout | 3(秒) | 数据库连接超时时间。过短可能导致网络波动时连接失败,过长会阻塞进程(建议 2-5 秒)。 |
mysqli.default_charset | utf8mb4 | 默认字符集。若项目需支持 emoji 表情,必须设 utf8mb4(utf8 仅支持 3 字节字符);老旧项目兼容 utf8 即可。 |
mysqli.reconnect | Off | 自动重连开关。关闭(Off)更安全:避免重连后事务丢失或数据错乱,手动处理连接失败更可靠。 |
postgresql.ini)配置文件路径:/opt/local/var/db/php56/postgresql.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
pgsql.auto_reset_persistent | On | 持久连接自动重置。开启后,每次复用持久连接前会重置状态(如事务、游标),避免跨请求污染。 |
pgsql.connect_timeout | 5(秒) | 连接超时时间,略长于 MySQL(PostgreSQL 连接建立稍慢),建议 3-5 秒。 |
gd.ini)配置文件路径:/opt/local/var/db/php56/gd.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
gd.jpeg_ignore_warning | 1 | 忽略 JPEG 警告(如旧版 GD 对某些 JPEG 格式的兼容警告)。开启可避免警告中断脚本执行(适合生产环境)。 |
memory_limit(PHP 全局参数,在 php.ini 中) | 128M(基础)/ 256M(处理大图片) | GD 处理图片时内存消耗大(如 10MB 的 JPEG 解压后可能占用 50-100MB 内存)。若频繁报 Allowed memory size exhausted,需提高此值(但不宜超过服务器物理内存的 50%)。 |
调优技巧:处理大图片前先压缩尺寸(如用 imagescale 缩小),减少内存占用。
imagick.ini)配置文件路径:/opt/local/var/db/php56/imagick.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
imagick.progress_monitor | 0 | 关闭进度监控(默认 1)。生产环境无需监控,可减少资源消耗。 |
imagick.max_memory | 256M | 单个 Imagick 实例的最大内存限制。根据图片大小调整,避免单进程占用过多内存导致 OOM。 |
curl.ini)配置文件路径:/opt/local/var/db/php56/curl.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
curl.cainfo | /opt/local/share/curl/cacert.pem | CA 证书路径。指定后可避免 HTTPS 请求因证书验证失败报错(MacPorts 安装的 curl 证书默认在此路径)。 |
default_socket_timeout(PHP 全局参数) | 10(秒) | cURL 默认超时时间。根据接口响应速度调整:内部接口设 3-5 秒,外部慢接口设 10-15 秒,避免长期阻塞。 |
mbstring.ini)配置文件路径:/opt/local/var/db/php56/mbstring.ini
核心参数:
| 参数 | 推荐配置 | 说明 |
|---|---|---|
mbstring.internal_encoding | UTF-8 | 内部字符串编码。统一设为 UTF-8,避免多字节处理时因编码不一致导致乱码。 |
mbstring.func_overload | 0 | 关闭函数重载(默认 0)。开启后会替换 strlen 等函数为 mbstring 版本,可能导致依赖原生函数的代码异常(尤其老旧项目)。 |
扩展配置检查:执行 php56 -i | grep "参数名" 确认配置是否生效(如 php56 -i | grep "apc.shm_size")。
性能监控:
错误日志:查看 PHP 错误日志(/opt/local/var/log/php56/error_log),排查配置错误或性能警告(如 apc_cache_full、内存溢出)。
PHP5.6 扩展调优的核心是「兼容性优先,适度优化」:
缓存类扩展优先保证命中率和内存稳定;
数据库/网络扩展控制超时时间,避免阻塞;
图形处理扩展重点控制内存占用,防止 OOM。