温馨提示×

linux php配置如何优化

小樊
42
2026-10-07 00:05:56
栏目: 编程语言

在 Linux 下优化 PHP 配置,通常分为 PHP 本身(php.ini)、PHP-FPM(如 Nginx + PHP-FPM)、OPcache、系统层面 四个方向。下面按“实用优先”的方式给你一套常见优化建议。


一、PHP 版本选择(最重要)

  • 尽量使用 PHP 8.1 / 8.2 / 8.3
  • 旧项目至少用 PHP 7.4+
  • 新项目直接上 PHP 8.2+(性能提升明显)
php -v

二、php.ini 核心优化

路径一般在:

/etc/php/8.2/cli/php.ini
/etc/php/8.2/fpm/php.ini

1. 内存相关

memory_limit = 256M
  • 普通 Web:128M–256M
  • CLI 脚本:可更大

2. 上传与执行时间

upload_max_filesize = 20M
post_max_size = 24M
max_execution_time = 30
max_input_time = 60

3. 错误与日志

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

4. 禁用危险函数(安全+性能)

disable_functions = exec,passthru,shell_exec,system,proc_open,popen

三、OPcache(必开,性能提升 2–5 倍)

安装

apt install php-opcache

配置(php.ini)

[opcache]
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0  ; 生产环境建议 0
opcache.save_comments=1

⚠️ validate_timestamps=0 时,改代码必须重启 PHP-FPM


四、PHP-FPM 优化(Nginx 常用)

配置文件:

/etc/php/8.2/fpm/pool.d/www.conf

1. 进程模式

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 1000

计算参考:

max_children ≈ 服务器内存 / 单个 PHP 进程内存

2. 慢日志(排查卡顿)

slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 2s

3. 重启 PHP-FPM

systemctl restart php8.2-fpm

五、Nginx + PHP 配合优化

location ~ \.php$ {
    fastcgi_pass   unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_read_timeout 60;
}

六、Linux 系统层面优化

1. 文件描述符

ulimit -n 65535

2. 临时文件目录

sys_temp_dir = /dev/shm

3. 使用 SSD + 足够内存

  • PHP 进程越多,越吃内存
  • OPcache 越大,越吃内存

七、常见性能工具

  • php -m 看已加载模块
  • top / htop 看 PHP-FPM 占用
  • strace -p <pid> 排查卡死
  • opcache_get_status() 看缓存命中率

八、典型生产环境推荐配置(示例)

  • PHP 8.2
  • OPcache 开启
  • PHP-FPM dynamic
  • Nginx
  • 2–4 GB 内存服务器
  • 关闭 display_errors

如果你愿意,可以告诉我:

  • 用的 PHP 版本
  • Web 服务器(Nginx / Apache)
  • 服务器配置(CPU / 内存)
  • 业务类型(API / 网站 / 后台任务)

我可以直接帮你写一份可用的 php.ini + php-fpm 配置。

0 踩